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é...






Répondre avec citation
comme d'habitude, il faut se compliquer la vie pour que ça soit opérationnel sous IE... Mais bon, l'essentiel c'est que ça fonctionne !!!!

Partager