Ma fct ajax fonctionne sur IE mais avec FF
ghizlanekh
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
ghizlanekh Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
ghizlanekh Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je me permet de vous posez une qutre question, car j'ai cherché partout mais je n'ai pas trouvé de réponse:
je suis une débutante en Ajax et je l'utilise pour la création de mon site.
le problèmes c'est ça marche bien sur IE mais sur FF plus rien ne marche.
je vous envoie le code pour que vous puissiez voir le problème.
function updateValue_codeclient_listeclient()
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
longueurCible = document.getElementById("code").firstChild.length;
document.getElementById("code").firstChild.replaceData(0, longueurCible, "leselect");
//document.getElementById('code').innerHTML = leselect;
}
}
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;
}
}
j'ai commencé par créer une fonction qui teste tous les navigateurs après j'ai trouvé cette fonction sur un site et je lai utilisé, je pense que le problème viens de xhr.readyState == 4 && xhr.status == 200 car j'ai utilisé des alert pour le test en entrant dans le if aucun alert ne fonctionne.
Merci pour votre aide.
je me permet de vous posez une qutre question, car j'ai cherché partout mais je n'ai pas trouvé de réponse:
je suis une débutante en Ajax et je l'utilise pour la création de mon site.
le problèmes c'est ça marche bien sur IE mais sur FF plus rien ne marche.
je vous envoie le code pour que vous puissiez voir le problème.
function updateValue_codeclient_listeclient()
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
longueurCible = document.getElementById("code").firstChild.length;
document.getElementById("code").firstChild.replaceData(0, longueurCible, "leselect");
//document.getElementById('code').innerHTML = leselect;
}
}
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;
}
}
j'ai commencé par créer une fonction qui teste tous les navigateurs après j'ai trouvé cette fonction sur un site et je lai utilisé, je pense que le problème viens de xhr.readyState == 4 && xhr.status == 200 car j'ai utilisé des alert pour le test en entrant dans le if aucun alert ne fonctionne.
Merci pour votre aide.
A voir également:
- Ma fct ajax fonctionne sur IE mais avec FF
- Ie tab - Télécharger - Outils pour navigateurs
- Bill ie cork ✓ - Forum Consommation & Internet
- Adresse ff - Forum Réseau
- Erreur 40 ff freebox - Forum Freebox
- Ie 11 - Télécharger - Navigateurs
2 réponses
Salut
t'a bien verifié avec un alert par exemple que sous firefox il fais bien un xhr = new XMLHttpRequest(); ?
sinon il manque des choses la, comment fais tu ton open et ton send ?
t'a bien verifié avec un alert par exemple que sous firefox il fais bien un xhr = new XMLHttpRequest(); ?
sinon il manque des choses la, comment fais tu ton open et ton send ?
if(xhr.readyState == 4 && xhr.status == 200) indique que la page appelée est construite et prête à être utilisée, si tu n'appelle pas de page (avec open et send), ca ne peux pas marcher...
Je me demande bien ce qui pouvait marcher sous IE... (menfin il fait tellement de trucs bizarre)
Je me demande bien ce qui pouvait marcher sous IE... (menfin il fait tellement de trucs bizarre)
function updateValue()
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
document.getElementById('marque').innerHTML = leselect;
}
}
xhr.open("POST","update.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById(article);
idart = sel.value;
xhr.send("IDART="+idart);
}
dsl j'ai fait un copier coller de ma fct mais j'ai pas pris tout.sous IE ca marche comme mais comme FF ne connait pas inerHTML je les modifié.
là on a bien un open et un send.
c pas IE qui est bizzare mais c moi qui a fait un copier incomplet.
dsl
merci pour votre réponse
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
document.getElementById('marque').innerHTML = leselect;
}
}
xhr.open("POST","update.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById(article);
idart = sel.value;
xhr.send("IDART="+idart);
}
dsl j'ai fait un copier coller de ma fct mais j'ai pas pris tout.sous IE ca marche comme mais comme FF ne connait pas inerHTML je les modifié.
là on a bien un open et un send.
c pas IE qui est bizzare mais c moi qui a fait un copier incomplet.
dsl
merci pour votre réponse
oui marque est un select.
je sais que innerHtml ne fonctionne pas avec FF mais juste j'ai donner laversion qui marche avec IE
je pense qu'il faut mettre
longueurCible = document.getElementById("marque").firstChild.length;
document.getElementById("marque").firstChild.replaceData(0, longueurCible, "leselect");
mais le problèmes est avant meme l'execution de cette ligne j'ai mi un alert de xhr ca marche mais alert (xhr.readyState);il m'affiche 1 ce qui fait quil n'entre jamais dans le if.
je sais que innerHtml ne fonctionne pas avec FF mais juste j'ai donner laversion qui marche avec IE
je pense qu'il faut mettre
longueurCible = document.getElementById("marque").firstChild.length;
document.getElementById("marque").firstChild.replaceData(0, longueurCible, "leselect");
mais le problèmes est avant meme l'execution de cette ligne j'ai mi un alert de xhr ca marche mais alert (xhr.readyState);il m'affiche 1 ce qui fait quil n'entre jamais dans le if.
Depend ou tu met ton alert, si l'alert tu le met apres le send a mon avis il n'affichera plus 1 mais 2
pour ajouter des valeurs a un select par javascript il faut utiliser
document.getElementById('marque').options[0] = new Option('texte affiché','value');
il créé donc une nouvelle option dans ta liste select a l'index 0 avec les parametres donnés
pour ajouter des valeurs a un select par javascript il faut utiliser
document.getElementById('marque').options[0] = new Option('texte affiché','value');
il créé donc une nouvelle option dans ta liste select a l'index 0 avec les parametres donnés
oui.
j'ai un site qui ne marche qu'avec Ajax.
car il faut actualiser plusieurs champ en remplissant un.
donc avec IE ça marche très bien.
avec FF j'ai qq problèmes déjà FF il comprend le innerHTML.
car quand j'essaie d'actualiser quatres listes deroulantes à partir d'un champ ca le fait bien et prt jai utilisé innerHTML mais quand j'essai d'actualiser par la meme fct un champ texte il marche que la première fois.
cad quand je rempli mon premier champ il actualise tous puis quand je le rempli d'un nouveau nombre il m'actualise mes liste mais pas mon champ il reste comme il est.
je ne voie aucune différence entre un champ text et un select surtout que les actualise du meme champ text.
si tu veux plus de détail je peux te poster mes fct.
merci.
j'ai un site qui ne marche qu'avec Ajax.
car il faut actualiser plusieurs champ en remplissant un.
donc avec IE ça marche très bien.
avec FF j'ai qq problèmes déjà FF il comprend le innerHTML.
car quand j'essaie d'actualiser quatres listes deroulantes à partir d'un champ ca le fait bien et prt jai utilisé innerHTML mais quand j'essai d'actualiser par la meme fct un champ texte il marche que la première fois.
cad quand je rempli mon premier champ il actualise tous puis quand je le rempli d'un nouveau nombre il m'actualise mes liste mais pas mon champ il reste comme il est.
je ne voie aucune différence entre un champ text et un select surtout que les actualise du meme champ text.
si tu veux plus de détail je peux te poster mes fct.
merci.