Bonjour,
En espérant poster au bon endroit, j'ai un problème dans une page PHP, où j'ai un javascript qui tourne dessus, mais qui ne fonctionne pas comme je voudrais. Le PHP je connais (enfin je me débrouille), mais le javascript j'ai un peu de mal.
je vous explique mon problème : j'ai un formulaire, avec une liste déroulante, qui, lorsqu'elle passe à OUI fait apparaître, à l'heure actuelle un champ (ici le champ date) :
Quand je la met à OUI, le champ date apparaît. Si c'est vide ou c'est à NON, ça n'affiche pas la date.
Dont voici le code PHP :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <td> <select name='GARANTIE' id='GARANTIE' onchange='sous_garantie_on_change();'> <option value=''></option> <option value='OUI'>Oui</option> <option value='NON'>Non</option> </select> </td> </tr> <tr> <td>Date de fin de garantie constructeur:</td> <td><input type="text" name="FIN_GARANTIE" id="FIN_GARANTIE"/></td> </tr>
Cette vérification, si je comprend bien mon script, est fait par du javascript (en effet, la fonction sous_garantie_on_changes() lance une fonction javascript qui s'appelle sousGarantieChanges), écrit comme ceci :
Donc jusque là, tout va bien : ça fonctionne correctement. Vous allez me dire mais pourquoi j'écris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function sousGarantieChanges() { if($("#GARANTIE").val() == "OUI") { $("#FIN_GARANTIE").parent().parent().css("display", "table-row"); } else { $("#FIN_GARANTIE").parent().parent().css("display", "none"); } }
Ben en fait, dans mon premier écran, je voudrais rajouter une liste déroulante, dans la même optique, en la cachant si la liste n'est pas à OUI.
J'ai donc rajouté dans ma page PHP ceci :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <tr> <td>Liste2:</td> <select name='Liste2' id='Liste2' > <option value=''></option> <option value='choix1'>Oui</option> <option value='choix2'>Non</option> </select> </tr>
Après le choix de la liste "GARANTIE".
Dans mon javascript j'ai une modif comme suit :
Pensant que la liste allait être cachée. Malheureusement ce n'est pas le cas : Même lorsque je met sur NON ma liste GARANTIE, LISTE2 apparaît quand même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function sousGarantieChanges() { if($("#GARANTIE").val() == "OUI") { $("#FIN_GARANTIE").parent().parent().css("display", "table-row"); $("#Liste2").parent().parent().css("display", "table-row"); } else { $("#FIN_GARANTIE").parent().parent().css("display", "none"); $("#Liste2").parent().parent().css("display", "none"); } }
n'est-ce pas comme ça qu'il faut faire la modif dans le javascript ?
petite question subsidiaire : pour ma culture personnelle, à quoi sert le "#" dans le javascript devant le nom "#FIN_GARANTIE" par exemple ?
En vous remerciant par avance de vos réponses, et en espérant avoir été assez clair.
Partager