Javascript Onchange() sur un select
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é:
Code:
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,
));
}
} |
Mon select famille récupère dans la base de donnée les famille déjà existante:
Code:
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;
} |
Maintenant, j'aimerais que lorsque l'utilisateur choisit autre, une div avec un id autre contenu un input apparaisse.
Je sais faire cela en html et javascript:
Code:
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