Bonsoir,
Je débute avec Ajax et voilà mon problème :
J'ai créé ma page avec un select qui se construit avec une sélection précédente.
J'ai créé un code javascript qui fait appel à un fichier php pour procéder à une requête SQL pour remplir ce select.
Extrait HTML :
En gros mon javascript :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <table id="tab"> <tr> <td> <select id="choix" onchange="choix(document.getElementById('choix').value)"> <option>Choix 1</option> <option>Choix 2</option> </select> <select name="test"> </select> </td> </tr> </table>
Et mon fichier php retourne la chose suivante (après la requête SQL qui va bien avec un WHERE prenant 'choix' en paramètre et le while ($row) qui va bien aussi) :
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 function choix(choix) { // Script AJAX 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; }; //on définit l'appel de la fonction au retour serveur xhr.onreadystatechange = function() { ajax(xhr); }; //on appelle le fichier xhr.open("GET", "ajax.php?choix="+choix, true); xhr.send(null); } function ajax(xhr) { if (xhr.readyState == 4) { document.getElementById('tab').elements['test'].innerHTML = xhr.responseText; }; }
Alors ca fonctionne impec sous FF, sous IE7 à la première ouverture de la page le readyState passe bien à 4 mais il n'affiche rien dans le select...
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "<option>$row[intitulé]</option>";
Quelqu'un a-t-il une piste ?
D'avance merci !!!!
PS : j'ai essayé en commentant var xhr = null; et xhr = false; mais ça n'a rien changé...
Partager