Bonjour à tous.
Actuellement j'ai un module générer par symfony depuis un model. J'ai donc un formulaire d'ajout dune nouvelle entité qui a été générer par symfony, que j'ai par la suite un peu modifié:
Mon select famille récupère dans la base de donnée les famille déjà existante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 class FichiersForm extends BaseFichiersForm { public function configure() { unset( $this['created_at'], $this['updated_at'], $this['index_modificateur'] ); $this->useFields(array('titre', 'famille', 'importance', 'nom_fichier', 'description', 'taille', 'extension', 'index_createur', 'type')); $this->widgetSchema['nom_fichier'] = new sfWidgetFormInputFile(array( 'label' => 'Fichier', )); $this->validatorSchema['nom_fichier'] = new sfValidatorFile(array( 'required' => false, 'path' => sfConfig::get('sf_upload_dir').'/fichiers', )); $this->widgetSchema['taille'] = new sfWidgetFormInputHidden(); $this->widgetSchema['extension'] = new sfWidgetFormInputHidden(); $this->widgetSchema['index_createur'] = new sfWidgetFormInputHidden(); $this->widgetSchema['type'] = new sfWidgetFormInputHidden(); $this->widgetSchema['famille'] = new sfWidgetFormChoice(array( 'choices' => Doctrine_Core::getTable('Fichiers')->getCodes(), 'multiple' => false, 'expanded' => false, ), array( 'onChange' => choix(this.value), )); $this->validatorSchema['famille'] = new sfValidatorChoice(array( 'choices' => array_keys(Doctrine_Core::getTable('Fichiers')->getCodes()), 'required' => false, )); } }
Maintenant, j'aimerais que lorsque l'utilisateur choisit autre, une div avec un id autre contenu un input apparaisse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public function getCodes() { $familles = Doctrine::getTable('Fichiers') ->createQuery('a') ->select('a.famille') ->groupBy('a.famille') ->execute(); $tabeau = array(); $tableau[NULL]='-- Famille --'; foreach ($familles as $famille) { $tableau[$famille->getFamille()]=$famille->getFamille(); } $tableau["Autre"]="Autre"; return $tableau; }
Je sais faire cela en html et javascript:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <HTML> <HEAD> <script type="text/javascript"> function choix(texte) { if (document.formulaire.famille.value=="Autre") { document.getElementById("autre").style.display= 'block'; } else { document.getElementById("autre").style.display= 'none'; } } </script> </HEAD> <body> <form action="index.php" name="formulaire"> <div> <select name="famille" onchange="choix(this.value)"> <option value="Musiques">Musiques</option> <option value="Films">Films</option> <option value="Textes">Textes</option> <option value="Autre">Autre</option> </select> </div> <div id="autre" style="display:none"> <label for="autre_famille" class="">Autre :</label> <input type="text" name="autre_famille"> </div><br /><br /> <input type="submit" value="Envoyer"> </form> </body> </HTML>
mais comment faire pour mettre le onchange sur le select dans symfony??
Merci de votre aide
Partager