Bonjour,
J'utilise le système AJAX pour réaliser 3 combobox lié par l'intermédiaire de ma base de données Accès.
La première combobox est la principale et la sélection de cette dernière définit la sélection possible dans la seconde, et la sélection dans la seconde vient définir la sélection possible dans la troisième.
La fonction AJAX pour lié la première et la deuxième combobox fonctionne nickel, par contre lors je lance la fonction AJAX qui permet de lier la seconde et la troisième, la fonction : xhr.readyState ne dépasse pas l'état 1 donc forcément cela ne fonctionne pas, voici le code de ma fonction :
Et voici le code du fichier 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 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 go2(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ alert(xhr.readyState); // 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('codage').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxcodage.php4",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de types sel = document.getElementById('types'); idTypes = sel.options[sel.selectedIndex].value; xhr.send("idtypes="+idTypes); sel = document.getElementById('classes'); idclasses = sel.options[sel.selectedIndex].value; xhr.send("idClasses="+idclasses); }
Ainsi je sollicite votre aide pour me sortir de ce problème, merci à vous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php echo "<select name='Codage'>"; if(isset($_POST["idTypes"]) && isset($_POST["idClasses"])){ $con=odbc_connect("rtpi","","") or die("Impossible de se connecter à la base de donnée, réessayer ou contacter un administrateur"); $requete = "SELECT * FROM Codage WHERE Classes = ".$_POST["idClasses"]." AND Types = ".$_POST["idTypes"]; $resultat = odbc_exec($con,$requete) or die("Impossible de générer la requête SQL, contacter un administrateur"); while(odbc_fetch_array($resultat)){ echo "<option value='".odbc_result($resultat,"Codes")."'>".odbc_result($resultat,"Codes")."|".odbc_result($resultat,"Designation")."</option>"; } } echo "</select>"; ?>
Partager