Bonjour,

Je crée un site en cakephp, et je veux que lors d'un clique sur un bouton,

une fenetre dialog s'affiche contenant un formulaire, et la première page sera inaccessible jusqu'au remplissage du formulaire

ou fermeture de cette fenetre de dialog, mais je ne sais pas comment faire?

j'ai utilisé dans un premier temps fenêtre pop up mais c'est beaucoup limité surtout coté design,

Merci pour votre aide

12 réponses


Kareylo
Réponse acceptée

Tu n'as peut-être pas chargé le javascript du Twitter Bootstrap.
Tu as soit tout en un seul fichier (bootstrap.js) soit en plusieurs fichiers (13 au total, se nommant bootstrap-***.js où *** est le nom de la fonction). Vérifie que tu charge bien jQuery avant le(s) fichier(s) js du bootstrap pour être sûr que jQuery est chargé correctement.

Personnellement, je le charge comme ça au fond de mon layout :

<?= $this->Html->script(array(
    'http://code.jquery.com/jquery-1.10.1.min.js',
    'bootstrap'
)); ?>
<?= $this->fetch('script'); ?>
tina
Auteur
Réponse acceptée

Merciiii beaucoup de ton aide,
oui c'est vrai c'est ce qui manqué,
je n'avais que le fichier bootstrap.js dans le dossier "js"

Pour ce faire il faut utiliser un pop in. (pop up dans la page en javascript)
Il y a plein de script qui existe. Perso j'utilise Colorbox : http://www.jacklmoore.com/colorbox/

Existe aussi sous Bootstrap et sous Foundation

Je suis un peut dans le même cas que toi, j'utilise le bootstrap, j'arrive bien à faire une modal avec mon formulaire dedans, mais j'arrive pas à lié le formulaire a la base de donnée. :/

<a href="#myModal" role="button" class="btn" data-toggle="modal">Se Connecter</a>    
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
        <h3 id="myModalLabel">Connexion</h3>
    </div>
    <div class="modal-body">
        <?= $this->Form->create('User'); ?>
            <?= $this->Form->input('username', array('label' => 'Pseudo')); ?>
            <?= $this->Form->input('password', array('label' => 'Mot de Passe')); ?>
        <?= $this->Form->end("Se connecter"); ?>
        <p><em><?= $this->Html->link('Mot de passe oublié ?', array('action' => 'forgot')); ?></em></p>
    </div>
</div>

Chez moi, ça marche très bien.

Ah ben perso j'ai un formulaire pour poster une annonce, et CakePHP n'arrive pas à le lié!

Tu met bien le "$this->Form->end();" dans le "modal-body" ? J'ai essayé en le mettant dans le "modal-footer" et ça marche pas.

tina
Auteur

Bonjour, merci pour vos réponses,

j'ai utilisé le même code que toi Kareylo mon problème que ça ne fonctionne pas,

la fenêtre de dialog n'est pas affiché,

que dois je vérifier pour est ce que je n'ai pas intégré correctement bootstrap dans mon projet cakephp?

et merci encore une fois

tina
Auteur

Merci j'ai utilisé ton code et ça ne fonctionne toujours pas :s

et déjà j'utilise ce code et ça ne fonctionne pas :

echo $this->Html->script('bootstrap.min');
echo $this->Html->script('bootstrap.min.js');

je ne sais pas d'ou vient le problème

Dans ton dossier "js" qui se situe dans ton dossier "webroot", tu as bien le fichier "bootstrap.min.js" ? Tu charges bien jQuery ?