Fonction ajax fonctionne sous FF mais pas sous IE [Résolu]

Signaler
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
-
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
-
Bonsoir ,
Pour la connexion a mon site j'utilitse une fonction ajax pour interroger la BDD elle fonctionne trés bien sous Firefox mais sous Ie rien ne se passe pourriez vous m'aidez voici le code :

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;
}

function post(div,args,page){
    var xhr = getXhr();
    // On défini ce qu'on va faire quand on aura la réponse
    xhr.onreadystatechange = function(){
        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok        if(xhr.readyState 4 && xhr.status 200){
            reponse = xhr.responseText;
            // On se sert de innerHTML pour rajouter les options a la liste
            document.getElementById(div).innerHTML = reponse;
        }
    }
    // Ici on va voir comment faire du post
    xhr.open("POST",page,true);
    // ne pas oublier ça pour le post
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    // ne pas oublier de poster les arguments
    xhr.send(args);
}

et j'appele la fonction post de cette manière :

post('resultat','action=verif_connexion&pseudo='+pseudo+'&password='+password,'recherche_bdd.php');

resultat = la div que je veux modifier.

sachant que sous FF tout fonctionne et ayant controler avec des alert javascript les variables pseudo et password existes et ont les bonnes valeurs pourriez vous m'aidez svp
merci d'avance 
si je n'est pas etait clair n'hesitez pas a me demander plus de details


Personne ne peut se permettre de juger l'autre....

9 réponses

Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Salut,

C'est du javascript ton probleme, pas du php, tu te trompes de forum..
Néenmoins, je me demande pourquoi tu te compliques la vie à réinventer la roue, t'as pas mal de librairies javascript pour faciliter ce travail..
Pour en citer qu'une, jquery > www.jquery.com, qui implémente pas mal de fonctions utiles et variées, ainsi qu'une panoplie de pas mal de plugins interessants..
la meme requete post ajax que toi donne:

<sup>$.post('recherche_bdd.php', { 'action' : 'verif_connexion', 'pseudo' : pseudo, 'password' : password }, function(data){
 $('#resultat').html(data);
})</sup>

Voila sinon pour debugger ton script, je te conseille de mettre des alert à divers endroits pour savoir quelle partie n'est pas executée (donc la partie qui n'"alert" pas)

win
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
merci de ta reponse je croyait pourtant avoir poster mon message sur le forum ajax desoler de cette erreur
et je vais regarder de plus pres jquery mais je ne l'ai jamais utilisé .
merci encore


Personne ne peut se permettre de juger l'autre....
Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Salut,

J'allais dire de vérifier que args n'est pas null et auquel cas le remplacer par "" mais ça a l'air bon... (IE ne veux pas de send(null))
Essaye peut-être : post('resultat','&action=verif_connexion&pseudo='+pseudo+'&password='+password,'recherche_bdd.php');

Je garantie pas que ça soit ça mais bon...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
    comme ça, à l'oeil, rien de flagrant comme erreur
    avec IE :
•————————•——————————————————————————————————————————————————————————•
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | o Afficher une notification de chaque erreur de script |
| | o Désactiver le débogage de Scripts (Internet Explorer) |
| | et mieux, : télécharger le Debogger IE |
| | voir aussi : DebugBar et Companion JS |
•————————•——————————————————————————————————————————————————————————•

et je viens de mettre Gestion AJAX Généralisée

                quelques lignes en javascript

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
109
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
23 novembre 2010

Salut, un problème avec IE est qu'il  ne va pas au serveur si la page demandée est dans  le cache ,  on ajoute un truc du style : page?x=getTime() rien que pour changer le nom de la page.Ton pb vient peut être de là.
taillecrayon
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
Bonjour merci pour vos reponses ,
taillecrayon : je vien d'essayer d'enlever la page recherche_bdd.php du cache en mettant cette ligne au debut :
header("Cache-Control: no-cache");
mais ca ne change rien sous IE ca ne passe pas.
ov3rdose : j'ai esayer ta syntaxe et meme resultat.
encore merci de vos reponse.


Personne ne peut se permettre de juger l'autre....
Messages postés
109
Date d'inscription
vendredi 30 janvier 2004
Statut
Membre
Dernière intervention
23 novembre 2010

oui, enfin la syntaxe correcte serait plutot: 'recherche_bdd.php?x='getTime()
taillecrayon
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
cette histoire de cache... ça fonctionnerait au moins la 1ère fois.

je pense qu'on n'a "pas assez d'infos" : difficile de voir
    comme ça, il faudrait pouvoir tester...
    et je ne me sens pas pour recopier et tester
       car on n'a pas tout...
    pas sûr que l'erreur soit dans ce que tu nous montres...
       mais pas pris le temps de recopier, mettre en forme....
       et tester, vaille que vaille, ce que tu nous mets.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
j'ai resolu mon probleme en utilisant jquery ca fonctionne a merveille sous IE et FF

bultez : je pense vraiment que l'erreur venez de IE lui meme ou du code que j'ai montrer car le seul code que j'ai et que je n'est pas noté c'etait mon formulaire de connexion et une fonction javascript que j'utilisé pour verifier que les champ pseudo et mot de passe etaient renseignés mais cette fonction fonctionnée sous IE et dasn cette fonction si les 2 champ etaient ok j'appeler la fonction post().

en tout cas merci a tous d'avoir essayé de resoudre mon probleme ca fais toujours plaisir de voir une communauté qui aide les autres.

bonne continuation a tous

encore merci


Personne ne peut se permettre de juger l'autre....