Salut !
J'ai un soucis. J'aimerais mettre en place des listes déroulantes liées. J'ai 3 fichiers : index.php contenant les listes déroulantes, Func.js contenant la fonction et liste.php contenant le code php.
La première liste déroulante se charge normalement mais la seconde ne réagit pas en fonction de cette dernière. De plus, j'aimerais pouvoir répéter ce système dans ma page pour d'autres données.
index.php
Func.js
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 <html> <head> <SCRIPT type="text/javascript" src="Func.js"></script> </head> <body> <div class="Centered"> <form class="CenteredForm" name="form_selects" id="form_selects" action="" method="" onsubmit="return false;"> <fieldset> <legend>Choix</legend> <div class="Left"> Département : <select name="list1" id="list1" class="ButtonL" onchange="request05(this.form)"> <option value="" selected="selected">Choix</option> <?php require 'Connect.php'; mysql_connect(SERVER, NAME, PASSWD) or die('Erreur SQL lors de la tentative de connexion à la base. Détails : '.mysql_error()); mysql_select_db(BASE) or die('Erreur SQL lors de la sélection de la base. Détails : '.mysql_error()); $listDep = mysql_query("SELECT DISTINCT Dep_Com FROM commune ORDER BY Dep_Com;") or die('Erreur SQL lors de la récupération des départements. Détails : '.mysql_error()); while ($data = mysql_fetch_assoc($listDep)) { echo "<option value".$data['Dep_Com'].">".$data['Dep_Com']."</option>"; } ?> </select> <select name="list2" id="list2" class="ButtonL"> </select> </div> </fieldset> </form> </div> </body> </html>
liste.php
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 var l1 = f.elements["list1"]; var l2 = f.elements["list2"]; var index = l1.selectedIndex; if(index < 1) l2.options.length = 0; else { var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("POST", "liste.php", true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) eval(xhr_object.responseText); } xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); var data = "departement="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2"; xhr_object.send(data); }
Quelqu'un peut m'aider svp ? Ce serait sympa car c'est très urgent !
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 <?php header('Content-type: text/html; charset=iso-8859-1'); // Déclaration des fichiers à utiliser require 'Connect.php'; // On se connecte à la de données mysql_connect(SERVER, NAME, PASSWD) or die('Erreur SQL lors de la tentative de connexion à la base. Détails : '.mysql_error()); mysql_select_db(BASE) or die('Erreur SQL lors de la sélection de la base. Détails : '.mysql_error()); $query = "SELECT DISTINCT Cp_Com FROM commune WHERE Dep_Com = '".$_POST["departement"]."'"; $query .= " ORDER BY Cp_Com;"; $result = @mysql_query($query); echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; while($r = mysql_fetch_array($result)) echo 's.options[s.options.length] = new Option("'.$r["departement"].'");'; @mysql_close($mysql_db); ?>
Merci d'avance...
Partager