Bonjour je viens de me mettre à l'AJAX, et j'ai un problème de compatibilité entre IE et FireFox.
Je vous explique, j'ai un formulaire qui se rempli automatiquement lorsque je rentre une date, et que celle ci existe déjà dans ma BDD. Jusqu'ici, je n'avais aucun problème, jusqu'à ce que je teste le site sous IE. Sous IE, les champs textes se remplissent, les images se mettent à jours, mais mes listes restent à leur états originales... De plus, j'ai un autre formulaire, qui se rempli automatiquement, lors d'un choix dans ma liste déroulante, sous FireFox, tout va bien mais sous IE il ne fait rien et en regardant l'erreur ça me dit : "Objet Requis".
Je ne sais pas quoi faire. Pouvez vous m'aider?
Voici mon code:
Voici mon XML:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 function ajax() { var xhr=null; if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); // Firefox, Opera, Konqueror, Safari, ... else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP'); // Internet Explorer else alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...'); // Navigateur //on définit l'appel de la fonction au retour serveur xhr.onreadystatechange = function() { alert_ajax(xhr); }; //on appelle le fichier ajax xhr.open("GET", "ajaxDj.php?nom="+document.djs.djName.value, true); xhr.send(null); } function go(c){ if(!c.data.replace(/\s/g,'')) c.parentNode.removeChild(c); } function clean(d){ var bal=d.getElementsByTagName('*'); for(i=0;i<bal.length;i++){ a=bal[i].previousSibling; if(a && a.nodeType==3) go(a); b=bal[i].nextSibling; if(b && b.nodeType==3) go(b); } return d; } function alert_ajax(xhr) { if (xhr.readyState == 4 && xhr.status == 200) { //chaque boucle va chercher les données dans un noeud //getElementsByTagName("")--> Représente le noeud dans lequel on vas chercher les données reponse = clean(xhr.responseXML.documentElement); var docXML= xhr.responseXML; var id = docXML.getElementsByTagName("ID"); var nom = docXML.getElementsByTagName("NOM"); var texte = docXML.getElementsByTagName("TEXTE"); var url = docXML.getElementsByTagName("URL"); var photo = docXML.getElementsByTagName("PHOTO"); //noeud ID for (i=0;i<id.length;i++) { if(id.item(0).firstChild.nodeValue > 0){ document.djs.valider.value = "MODIFIER CE DJ"; document.djs.action = "index.php?url=ModifDj"; } else{ document.djs.valider.value = "AJOUTER CE DJ"; document.djs.action = "index.php?url=VerifDj"; if(id.item(0).firstChild.nodeValue =="0"){ document.djs.nom.value = ""; document.djs.description.value = ""; } } } //noeud NOM for (i=0;i<nom.length;i++) { //c'est ici qu'il y a une erreur sous IE document.djs.nom.value = nom.item(0).firstChild.nodeValue; } //noeud TEXTE for (i=0;i<texte.length;i++) { document.djs.description.value = texte.item(0).firstChild.nodeValue ; } //noeud URL for (i=0;i<url.length;i++) { document.djs.url.value = url.item(0).firstChild.nodeValue ; } //noeud PHOTO for (i=0;i<photo.length;i++) { document.djs.photoDj.src = photo.item(0).firstChild.nodeValue ; } } }
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 − <DONNEE> <ID>35</ID> <NOM>David Guetta</NOM> <PHOTO>Upload/Photo DJ/David Guetta/david guetta.jpg</PHOTO> − <TEXTE> Pionnier de la house hexagonale avec "Up & Way", David Guetta s'est imposé dans les années 90 comme un entrepreneur phare de la nuit parisienne invitant des légendes comme Little Louie Vega, David Morales, DJ Pierre ou Roger Sanchez à partager ses platines. Annoncé par "Just A Little More Love", cocktail d'électro et de funk house avec Chris Willis de Nashville au chant, le premier album de David Guetta paru chez Virgin en juin 2002 va s'écouler à 250 000 exemplaires. Succès porté par le deuxième single encore plus dévastateur : "Love Don't Let Me Go" évoquant le techno-disco de Moroder et la new-wave de Depeche Mode. Pour David, qui fit, comme Laurent Garnier, ses débuts dans les clubs gays des Halles au milieu des années 80, c'est le début d'une nouvelle carrière de DJ, mais désormais à l'échelle mondiale. Son CD "Fuck Me I'm Famous : Dj Mix Ibiza", du nom de la soirée qu'il organise sur l'île techno, et qui contient son remix du "Heroes" de David Bowie, est disque d'or aujourd'hui, score exceptionnel pour un CD de mix. Depuis quelques années maintenant, David est régulièrement invité à mixer en Europe, aux Etats-Unis, Australie, Japon, Singapour, Israël, tout en étant résident à The Cross à Londres, au Discoteca de Barcelone et au Mad à Lausanne. </TEXTE> <URL>http://www.davidguetta.com</URL> <VOTE>0</VOTE> </DONNEE>
Partager