Bonjour tout le monde.
voilà, toujours dans le cadre d'une application web développée en asp (avec le code behind rédigé en Dataflex), je suis arriver à un point dans lequel il faut que j'affiche 3 listes de sélection, et pour bien faire, il faudrait que celles-ci soient liées.
Je m'explique, j'ai une première liste contenant les code des pays:
La fonction go est celle reprise du tuto adaptée que voici (voir lien plus bas):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <select name="Cli__Py" id="Cli__Py" size="1" onChange="go()"> <option value="B" >B</option> <option value="CH" >CH</option> <option value="D" >D</option> <option value="F" >F</option> <option value="L" >L</option> <option value="NL" >NL</option> </select>
Dans la deuxième liste de sélection, lors de la création de la page, je récupère tout les codes postaux stockés dans ma base de données.
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
41 function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } function go(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('Cli__Cdp').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxLivre.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); alert('test'); // ne pas oublier de poster les arguments // ici, l'id de l'auteur sel = document.getElementById('Cli__Py'); Cli__Py = sel.options[sel.selectedIndex].value; xhr.send("Cli__Py="+Cli__Py); }
Voici la procédure "Msg_CodePostal":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <select title="" name="Cli__Cdp" id="Cli__Cdp" onChange="ChangeCdp"> <%oCliEntry.call "Msg_CodePostal" %> </select>
Et alors la troisième liste contiendra le nom des villes associées aux codes postaux de la liste précédente. Même principe pour la création de celles-ci que pour la création de la liste des codes postaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Procedure CodePostal String sResult Send Clear of oCdp_DD Move 0 to CDP.CDP Send Find of oCdp_DD GE 1 While (Found) Send WriteHtml ("<option value="+CDP.CDP+">"+CDP.CDP +" - "+CDP.VIL+" - ("+(Trim(CDP.PY))+")</option>") Send Find of oCdp_DD GT 1 Loop End_Procedure
j'ai fait un petit tour sur le forum, et trouver quelques informations au sujet de la mise à jour de liste. Entre autre le lien suivant.
Le problème, est que tout le code est rédigé, pour la partie non Javascript en php, et que, n'ayant jamais eu de cours de développement web, je n'y comprend donc rien.
Alors ma question est la suivante:
Quelqu'un pourrait-il m'expliquer comment cela fonctionne, et comment je pourrais intégrer tout cela dans une page asp?
Si je comprend bien les choses, la parties de code se trouvant dans le fichier "ajaxLivre.php" va créer de manière dynamique la liste associée au auteur. Le problème dans mon cas, j'ai mes éléments dans des tableaux, et ne sais donc pas comment faire appel à la création de la liste sans la retrouver deux fois dans mon tableau...
(En gros, je suis complètement paumer, au secours...)
Merci pour l'aider que vous pourrez m'apporter afin de voir un peu plus clair dans tout ça.
Partager