Probleme internet explorer et ajax

momo11985 Messages postés 6 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 29 décembre 2010 - 9 déc. 2010 à 11:01
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 13 déc. 2010 à 12:26
Bonjour

J'ai réaliser une application d'autocompletion en ajax.Cette application marche très bien avec firefox mais ne fonctionne pas sous internet explorer. J'ai fais des tests pour m'assurer que l'objet xmlhttprequest est instancie sur internet explorer mais je remarque que rien n'est instancie.Je vous propose mon code d'instanciation :


function affichage(){
var resultat = null;
if(window.XMLHttpRequest) // Firefox et autres
resultat = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
resultat = new ActiveXObject("Msxml2.XMLHTTP");
alert('ok');
} catch (e) {
resultat = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
resultat = false;
}

return resultat;
}
Est ce que quelqu'un aurait une idée?
Merci.

7 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
10 déc. 2010 à 11:10
Bonjour,
fais un test en ligne.

;O)
0
momo11985 Messages postés 6 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 29 décembre 2010
10 déc. 2010 à 12:36
Salut


j'ai résolu une partie de mon problème , j'ai encore quelques soucis . l'objet xmlhttprequest était instancie mais je n'obtenais pas de résultat. Un fait bizarre est que lorsque j’insère mon résultat dans une balise span ou div , tous les navigateurs affichent mon résultat , mais lorsque j'utilise une balise table ou select j'obtiens uniquement des résultats sur firefox. J'utilise l'attribut innerhtml pour afficher mes résultats.
Est ce que quelqu'un aurait une idee?
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
10 déc. 2010 à 12:46
...J'utilise l'attribut innerhtml pour afficher mes résultats. ...
montres nous ta fonction d'insertion.
;O)
0
momo11985 Messages postés 6 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 29 décembre 2010
10 déc. 2010 à 15:28
Salut

Je vous présente mon moteur ajax .

function auto()
{

// initialisation de l'objet xmlhttprequest
var xhr = affichage();


function rappel()

{
// declaration du resultat
var result = xhr.responseText;
document.getElementById("ok").innerHTML=xhr.responseText;
}

xhr.onreadystatechange = rappel;


// Création de la requête asynchrone

var a = document.getElementById("texte").value;

xhr.open("get","auto1.php?nom="+a,true);
xhr.send("null");

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
10 déc. 2010 à 16:49
Bonjour,
tout d'abord penses à utiliser le balisage de code pour plus de lisibilité.

ensuite je supputes que lorsque tu utilises une balise table ou select cela signifie que c'est la table ou le select qui ont id="ok", et là ce n'est pas une bonne idée, autant tout réinjecter dans une balise DIV.

;O)
0
momo11985 Messages postés 6 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 29 décembre 2010
12 déc. 2010 à 13:42
Salut

J'ai essayer de superposer les balises div et table ou select mais rien a faire , mon résultat ne s'affiche toujours pas.Voici ce que j'ai fais:



<select id="ok" name="momo">
<option value="">(choisir)</option>
</select>

.

Je n'obtient aucun résultat.Je ne comprends pas l'expression << réinjecter dans une balise DIV>>. Est ce que quelqu'un aurait une idée?
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 déc. 2010 à 12:26
Bonjour,
IExplorer ne permet pas d'injecter comme tu le fais pour des raisons, pour une fois justifiés, de destruction possible du DOM.

  <select id="ok" name="momo">
    <option value="">(choisir)</option>
  </select>

 
devrait plutôt être

  <select name="momo">
    <option value="">(choisir)</option>
  </select>

avec une xhr.responseText de cette forme
<select name="momo"><option value="">(choisir)</option></select>
on injecte donc dans la DIV id="ok" le code HTML complet du SELECT
;O)
0
Rejoignez-nous