Bonjour a tous,
J'ai crée deux listes déroulantes reliées a des base de donées, la deuxième dépendante de la première, j'ai d'abord utilisé l'évènement onchange pour que la seconde liste s'actualise lorsque l'on modifie le choix dans la première mais en faite je voudrais aussi éxecuter la fonction lors du chargement de la page pour éviter a l'utilisateur d'avoir a tout ressaisir, le problème c'est que mon événement onload ne marche pas: rien ne ce passe. quelqu'un aurait-il une idée pour que la liste numéro 2 prennent se remplisse dès le chargement en fonction de la valeur par defaut de la première liste.
voici mon code source:
Les fonctions JavaScripts
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 <script type='text/javascript'> 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(); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { leselect = xhr.responseText; document.getElementById('techno').innerHTML = leselect; } } xhr.open("POST","ajaxTechno.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); sel = document.getElementById('secteur'); secteur = sel.options[sel.selectedIndex].value; xhr.send("secteur="+secteur); } </script>
La premiere liste
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 <label>Secteur</label> <select name='secteur' id='secteur' onload='go()' > <option value='-1'>Aucun</option> <?php $res = mysql_query("SELECT * FROM secteur ORDER BY NOMSECTEUR"); while($row = mysql_fetch_assoc($res)) { if((isset($_SESSION['secteur']) and $_SESSION['secteur']==$row["NUMSECTEUR"])) { echo "<option value='".$row["NUMSECTEUR"]."' selected='selected'>".$row["NOMSECTEUR"]."</option>"; } $form='secteur'; $selection=choixParDefaut($row["NUMSECTEUR"], $form); echo "<option value='".$row["NUMSECTEUR"]."' >".$row["NOMSECTEUR"]."</option>"; } ?> </select>
La deuxieme liste
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 <?php session_start(); echo "<select name='techno'>"; if(isset($_POST["secteur"])){ mysql_connect("localhost","root",""); mysql_select_db("maquette_refcost"); $res = mysql_query("SELECT NUMTECHNO, NOMTECHNO FROM techno WHERE NUMSECTEUR=".$_POST["secteur"]." ORDER BY NOMTECHNO"); while($row = mysql_fetch_assoc($res)) { if(isset($_SESSION['techno'])and $_SESSION['techno']==$row["NOMTECHNO"]) { echo "<option value='".$row["NUMTECHNO"]."'selected='selected'>".$row["NOMTECHNO"]."</option>"; } else { echo "<option value='".$row["NUMTECHNO"]."'>".$row["NOMTECHNO"]."</option>"; } } } echo "</select>"; ?> </body> </html>
Merci d'avance pour vos proposition.
Partager