par
Cyrano » 16 sept. 2006, 21:32
Mouais, tu pointes pas sur les bons éléments et dans ton html, il y a une erreur pourtant énorme : tu as mis une instruction JavaScript en guise d'attribut.
On va modifier un peu tout ça. Les éléments sur lesquels tu vas pointer doivent avoir un attribut id, de même que la balise <form> : tu utilises une syntaxe XHTML pour tes balises <input />, fais pareil pour tout le formulaire dans ce cas, et en XHTML, l'attribut name est interdit dans la balise form : on la remplace par l'attribut id avec la même valeur.
Ça implique qu'on va modifier la manière de pointer sur les éléments., j'y reviendrai. Ensuite, on va afficher/masquer deux éléments : d'une part le champ de saisie, d'autre part le signe "€" : pour ce faire, on va encadrer le tout dans un élément <label> et mettre un attribut id à ce dernier. Voilà ce que ça donne :
-1- le JavaScript :
Code : Tout sélectionner
<script type="text/javascript">
/* <![CDATA[ */
function montrer(champ)
{
if (document.forms['insert_commune'].elements['Copies_auth'].checked == true)
{
document.getElementById('champPrix').style.display='inline';
}
else
{
document.getElementById('champPrix').style.display='none';
}
}
/* ]]> */
</script>
Tu noteras que le type dans la balise script est obligatoire également en XHTML et remplace l'attribut "language" devenu obsolète. Et en XHTML, on ne peut pas mettre n'importe comment du code directement dans la page, il y a donc des commentaires spéciaux (CDATA) en début et en fin de code.
Ensuite, comme on utilise les attribut id au lieu de name dans les éléments, on pointe non plus en utilisant form.valeur-de-name-de-la-balise-form.etc... mais form
s['valeur-de-l'id-de-la-balise-form'].etc... (attention au "s", il est indispensable)
-2- ta balise form devient :
<form action="<?php echo $editFormAction; ?>" id="insert_commune" method="POST" id="insert_commune">
-3- la case à cocher et le champ de saisie :
Code : Tout sélectionner
<td>
<input name="Copies_auth" id="Copies_auth" type="checkbox" onclick="montrer();" checked="checked" />
<label id="champPrix" style="display: inline"><input type="Tarif_auth" name="Tarif_auth"><strong>€</strong></label>
</td>
Voilà, fais les corrections dans ton code et teste ça : si tu as des questions sur un point que tu es pas sûr de bien comprendre, reviens les poser et sinon, ben oublie pas de venir nous mettre un
[Résolu] 
Mouais, tu pointes pas sur les bons éléments et dans ton html, il y a une erreur pourtant énorme : tu as mis une instruction JavaScript en guise d'attribut.
On va modifier un peu tout ça. Les éléments sur lesquels tu vas pointer doivent avoir un attribut id, de même que la balise <form> : tu utilises une syntaxe XHTML pour tes balises <input />, fais pareil pour tout le formulaire dans ce cas, et en XHTML, l'attribut name est interdit dans la balise form : on la remplace par l'attribut id avec la même valeur.
Ça implique qu'on va modifier la manière de pointer sur les éléments., j'y reviendrai. Ensuite, on va afficher/masquer deux éléments : d'une part le champ de saisie, d'autre part le signe "€" : pour ce faire, on va encadrer le tout dans un élément <label> et mettre un attribut id à ce dernier. Voilà ce que ça donne :
-1- le JavaScript :
[code]<script type="text/javascript">
/* <![CDATA[ */
function montrer(champ)
{
if (document.forms['insert_commune'].elements['Copies_auth'].checked == true)
{
document.getElementById('champPrix').style.display='inline';
}
else
{
document.getElementById('champPrix').style.display='none';
}
}
/* ]]> */
</script>[/code]
Tu noteras que le type dans la balise script est obligatoire également en XHTML et remplace l'attribut "language" devenu obsolète. Et en XHTML, on ne peut pas mettre n'importe comment du code directement dans la page, il y a donc des commentaires spéciaux (CDATA) en début et en fin de code.
Ensuite, comme on utilise les attribut id au lieu de name dans les éléments, on pointe non plus en utilisant form.valeur-de-name-de-la-balise-form.etc... mais form[u]s[/u]['valeur-de-l'id-de-la-balise-form'].etc... (attention au "s", il est indispensable)
-2- ta balise form devient :
[php]<form action="<?php echo $editFormAction; ?>" id="insert_commune" method="POST" id="insert_commune">[/php]
-3- la case à cocher et le champ de saisie :
[code] <td>
<input name="Copies_auth" id="Copies_auth" type="checkbox" onclick="montrer();" checked="checked" />
<label id="champPrix" style="display: inline"><input type="Tarif_auth" name="Tarif_auth"><strong>€</strong></label>
</td>
[/code]
Voilà, fais les corrections dans ton code et teste ça : si tu as des questions sur un point que tu es pas sûr de bien comprendre, reviens les poser et sinon, ben oublie pas de venir nous mettre un [b][Résolu][/b] ;)