Fonction ajax fonctionne sous FF mais pas sous IE

Résolu
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 - 5 juin 2008 à 21:10
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 - 6 juin 2008 à 13:23
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

winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
5 juin 2008 à 21:43
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
3
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
5 juin 2008 à 22:34
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....
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
6 juin 2008 à 08:45
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...
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 10:20
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]
0

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

Posez votre question
taillecrayon Messages postés 109 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 23 novembre 2010
6 juin 2008 à 10:45
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
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
6 juin 2008 à 12:48
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....
0
taillecrayon Messages postés 109 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 23 novembre 2010
6 juin 2008 à 13:05
oui, enfin la syntaxe correcte serait plutot: 'recherche_bdd.php?x='getTime()
taillecrayon
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
6 juin 2008 à 13:06
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]
0
cs_sebastien_et_typh Messages postés 289 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 11 juin 2010 3
6 juin 2008 à 13:23
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....
0