2 LISTES LIÉES DYNAMIQUEMENT ENTRE ELLES, DONT LE CONTENU VIENT D UNE BDD

Essai - 6 août 2001 à 17:24
sbouchaibi Messages postés 8 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 septembre 2013 - 13 sept. 2013 à 16:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8682-2-listes-liees-dynamiquement-entre-elles-dont-le-contenu-vient-d-une-bdd

sbouchaibi Messages postés 8 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 septembre 2013
13 sept. 2013 à 16:50
Bonsoir,

Est ce que vous pouvez me dire comment récupérer les valeurs des deux listes ?
Je sais qu'on utilise : "request.form", par contre, je sais pas comment ?
Merci
cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
1 sept. 2008 à 08:01
Re Bonjour,

Encore deux choses:
1) Lorsque vous faite un post et que comme moi vous géré les erreurs en asp (exmple: champs vide) lorsque la page est affiché il perd la sélection. J'ai résolut le probleme en sauvegardent la valeur de la liste (via request.form("listeA")) dans une variable et lors de la constuction de la liste je vérifie si le record courant est identique à la variable si oui, j'ajoute "selected='selected'" dans l'option, si non, c'est normal. De plus pour que la seconde liste ce rafraiché j'ai ajouté une variable booleen que je met à true lorsque je passe dans le 'oui' (voir plus haut). En fin de javascript j'ai ajouté: <% If blnListA = True Then response.Write("changeliste();") %> pour le forcé a rafraichir cette liste. Comme j'ai aussi une varible ou j'ai sauvegardé la valeur par le request.form(listeB) je peux assi retrouvé la valeur qui était sélectionné avant le post.
2) Petite correction cela fonctionne en IE7.

Merci
Olivier
cs_Hobby Messages postés 116 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 17 septembre 2008
1 sept. 2008 à 05:23
Je confirme le fonctionnement en mode 3 listes.
Juste qu'il faut aussi ajouté dans cette partie:
function changeliste() {
choix=document.monform.listeA.value;
document.monform.listeB.outerHTML=liste[choix];
}
ceci: changelisteb(); (juste a vant le } )
C'est logique sinon la troisièmme liste n'est pas refraichis lorsque l'on chanhe la 1er.

Merci
Olivier
Ps: la source 'original' fonctionne en IE6.
cs_zoume Messages postés 6 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 23 mai 2006
7 juin 2006 à 10:50
bonjour,

j'ai testé ce bout de code sous IE et mozilla.
la deuxieme liste déroulante ne se remplie pas :(
cs_Escob Messages postés 14 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 14 juin 2008
10 avril 2006 à 15:40
petite modif pour que ca fonctionne sous IE et netscape
1. <form name="monform" action="<%=URL%>" method=post>
2.
3. Catégorie :
4. <select name="listeA" size="1" onChange="changeliste()">
5.
6. <option value="0">---</option>
7. <%set liste=ConnectionBD.execute("select * from categorie")
8. while not liste.eof
9. response.write("<OPTION VALUE="&liste("id_categorie")&">"&liste("intitule")&"</option>")
10. liste.movenext
11. wend%>
12. </select>
13.

14. Prestation :
15. <select name="listeB" size="1">
16. <!--<option value="">---</option>-->
17. </select>
18.

19.

20.
21. <script>
22. <!--
23. var liste=new Array()
24. liste[0]="<OPTION VALUE=0>---</OPTION>";
25. <%liste.movefirst
26. while not liste.eof
temp2="<select name='listeB'>"
27. temp=""
28. set prestation=ConnectionBD.execute("select * from prestation where id_categorie="&liste("id_categorie"))
29. while not prestation.eof
30. temp=temp&"<OPTION VALUE="&prestation("id_prestation")&">"&prestation("designation")&"</option>"
31. prestation.movenext
32. wend
33. temp3="</select>"%>
34. liste[<%=liste("id_categorie")%>]="<%=temp%>";
35. <%
36. liste.movenext
37. wend
38. %>
39.
40. function changeliste() {
41. choix=document.monform.listeA.value;
if (navigator.appName=='Netscape') {
document.monform.listeB.innerHTML=liste[choix];
}
else{
42. document.monform.listeB.outerHTML="<%=temp2%>"+liste[choix]+"<%=temp3%>";
43. }
44. //-->
45. </script>
cs_karimking Messages postés 1 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 7 janvier 2005
7 janv. 2005 à 15:56
J'utilise également IE 6.0 et ça ne marche pas !
Les valeurs sont chargé dans la premiére liste, la construction de la deusiéme liste est réussi dans le code mais n'actualise pas le contenu lorsque la séléction change dans la premiére liste !
cs_jcharles Messages postés 21 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 23 juin 2004
25 juin 2003 à 10:44
bonjour moi je rencontre une erreur:
'document.monform.listeA.value' à la valeur Null ou n'est pas un objet

quelqu'un sait il pq merci

P.S j'utilise internet explorer 6.0
cs_MrNet Messages postés 1 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 22 mai 2003
22 mai 2003 à 13:22
Pour 3 Listes :
Creer une Nouvelle Liste : ListeC
copier/coller le script après lui-même, puis sur la copie changer :
Pour les variables javascript
(liste,ListeA,ListeB) par (liste2,ListeB,ListeC)
Changer le nom de la fonction changeliste par changelisteb
Pour les variables ASp :
(temp,liste,Prestation) par (temp2,Prestation,NouvelleReq)
--->Mettre en accord le nom des champs !!!
Dans le premier script changer :
temp="<select name='listeB'>" par temp="<select name='listeB' onchange='changelisteb()' >"

Grosso modo c'est les grandes lignes , chez moi ca marche ...
cs_onha Messages postés 27 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 4 mars 2019
16 mai 2003 à 10:17
Moi par contre j'ai un petit problème il ne veut pas actualisé la deuxième liste.
cs_Lelion Messages postés 3 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 7 janvier 2003
7 janv. 2003 à 11:15
merci pour ce scripte je le cherche déjas
j'espère que je serai utils pour vous une autres fois
cs_Ray Messages postés 1 Date d'inscription mercredi 1 août 2001 Statut Membre Dernière intervention 24 juillet 2002
24 juil. 2002 à 12:42
c est marrant je repasse 1 an plus tard et je vois que mon script intéresse tjrs des gens ca fait plaisir.

Pour la troisieme liste, c est possible mais je crains que ca devienne tres lourd.
pi0up51 Messages postés 103 Date d'inscription vendredi 13 juillet 2001 Statut Membre Dernière intervention 26 août 2003
16 juin 2002 à 18:03
même chose en php ?
cs_PoUpA Messages postés 2 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 27 avril 2002
27 avril 2002 à 01:11
Magnifique :) j'téais justement en train d'en faire un mais le tien me parais mieux :) tu sauve mon travail de certificat :) plus qu'a le mettre en Jscript et c'est tt bon :) merci
Merci pour ce script ! c exactement ce qu'il me fallait !
comment faire pour intégrer une troisième liste dépendante
de la seconde ?
merci de me le faire remarquer, j ai élaboré ce script pdt mon stage et j ai du tout changer pour que cela fonctionne sous netscape!

j ai du adapter un script trouvé sur un autre site...

si quelqu un voit l erreur, ca m'intéresse !
Bon script, mais ne marche pas sous Netscape :
dans la fonction changeliste()
choix =null avec netscape...
Rejoignez-nous