IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Methode xmlhttprequest.open sous firefox


Sujet :

AJAX

  1. #1
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut [AJAX] Methode xmlhttprequest.open sous firefox
    bonjour tout le monde,
    j'ai un grand prob en ce qui concerne le fonctionnement d'ajax sous firefox, premierement voici mon code (req etant le xmlhttprequest)

    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
     
    function userResponse(){
    var req=new getXHR();
    req.onreadystatechange=function(){
    if(req.readyState==4){
    if(req.status==200){
    if (document.getElementById('nomutilisateur').value!="" && document.getElementById('nomutilisateur').value!=" "){
    document.getElementById('nomuser').innerHTML=req.responseText;
    }
    else{
    document.getElementById('nomuser').innerHTML="entrez le nom utilisateur...";
    }
    }
    }
    else{
    document.getElementById('nomuser').innerHTML='Loading...';
    }
    }
    var url='message.php?username='+document.getElementById('nomutilisateur').value;
    req.open("GET",url,false);
    req.send(null);
    }
    et voici le code de la partie serveur (php)

    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
     
    <?php
    $dbh='mysql:host=localhost;dbname=nombd;';
    try{
    $pdo=new PDO($dbh,'username','password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $cmd="select count(Mat) from membre where Username='".$_GET['username']."'";
    foreach($pdo->query($cmd)as $row){
    if ($row[0]!=0){
    echo ('<font color="#ffffff">ce nom utilisateur est deja utilisé, choisissez un autre nom</font>');
     
    }
    else{
    echo ('<font color="#ffffff">nom utilisateur accepté</font>');
    }
    }
    }
    catch(PDOException $e){
    echo $e->getMessage(); 
    }
    ?>

    mon probleme est dans la partie de javascript sous firefox, il m'envoie un message d'erreur disant que "req.open('get',url,true) is not a function" sachant qu'il marche bien sous ie.

    Aidez moi svp et merci d'avance.!!!!

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour et Bienvenue sur Developpez
    1-
    req.open("GET",url,false);
    "req.open('get',url,true) is not a function"
    2- Si tu utilises false comme troisieme parametre, tu travailles en mode synchrone donc pas de onreadystatechange.
    3- On peut voir la fonction getXHR?

  3. #3
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut getXHR
    Merci de ta réponse,
    voila la fonction getXHR();
    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
     
    function getXHR(){
    var req=null;
    try{
    req=new XMLHTTPRequest();
    }
    catch(err1){
          try{
          req=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch(err2){
          try{
          req=new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch(err3){
          req=null;
          }
          }
    }
    return req;
    }


  4. #4
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut xmlhttprequest.open() problem
    bonjour,
    j'ai essayer de mettre true a la place de false, pourtant il reste le meme prob


  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par simotaqi Voir le message
    j'ai essayer de mettre true a la place de false, pourtant il reste le meme prob
    C'est plutôt le 1° point soulevé par Andry qu'il faudrait essayer de comprendre : comment le nav peut-il te signaler une erreur sur un appel avec "true" en paramètre alors que dans ton code ce paramètre est à "false" ?

    Es-tu sûr de modifier (et de nous montrer) le bon code (celui que tu vois dans ton nav) ?

    A+

  6. #6
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    bonjour,
    excusez moi de mon erreur , c'est seulement une erreur dans ma discussion,
    ben:
    si je mets false le msg de navigateur sera: req.open("GET",url,false) is not a function
    alors que si je mets true le msg sera: req.open("GET",url,true) is not a function

    est ce c'est clair mnt???

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par simotaqi Voir le message
    est ce c'est clair mnt???
    En tous cas ça explique ce point là

    Essaye de déclarer en globale et d'enlever sa déclaration ("var") dans les fonctions ...

    Par contre, si tu restes en asynchrone (false dans le open), pense à faire sauter le onreadystatechange.

    A+

  8. #8
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    merci
    il m'envoie encors le meme message

    et puis , il n'y a pas de probleme avec ie

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    On peut voir ton code actuel : Javascript + HTML généré (sans PHP) ?

    A+

  10. #10
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut xmlhttprequest.open() problem
    je crois que la fonction open n'est pas valide dans FF

  11. #11
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    oui tu peux voir la page de l'inscription ici (la version francaise de mon site n'est pas encore developpe)

    www.bahamman.com/inscription

  12. #12
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut xmlhttprequest.open() problem
    pour le fichier js :
    www.bahamman.com/js/ajax.js

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par simotaqi Voir le message
    je crois que la fonction open n'est pas valide dans FF
    Si si

    Par contre, je vais pas suivre tes liens : un petit copié/collé serait le bienvenu

    A+

  14. #14
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut

    est ce que tu parle du code html de la page ??

    je crois que j'ai envoyé presque tout le code dont l'erreur peut etre contenue
    bon, je crois que le principe est clair , non???

    le code html généré est seulement un message disant que le nom utilisateur est deja utilisé

    et ca marche bien avec internet explorer,

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par simotaqi Voir le message
    est ce que tu parle du code html de la page ??
    Oui, le code généré.
    Citation Envoyé par simotaqi Voir le message
    je crois que j'ai envoyé presque tout le code dont l'erreur peut etre contenue
    Je ne vois pas de code. Que des liens (inutiles ici car le contenu bouge en fonction de tes modifs).

    => un copié/collé de la version que tu veux nous soumettre ?

    A+

  16. #16
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    ok je vais t'envoyer le code :

    premierement l'utilisateur ecrit sont nom util dans le input text
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input name="Username" type="text" id="nomutilisateur" onchange="userResponse();">
    alors le changement de la valeur de nomutilisateur va executer la fonction userResponse();

    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
     
    var req;
    function userResponse(){
    req=new getXHR();
    var url='message.php?username='+document.getElementById('nomutilisateur').value;
    req.open("GET",url,true);
    req.onreadystatechange=function(){
    if(req.readyState==4){
    if(req.status==200){
    if (document.getElementById('nomutilisateur').value!="" && document.getElementById('nomutilisateur').value!=" "){
    document.getElementById('nomuser').innerHTML=req.responseText;
    }
    else{
    document.getElementById('nomuser').innerHTML="entrer nom utilisateur";
    }
    }
    }
    else{
    document.getElementById('nomuser').innerHTML='Loading...';
    }
    }
     
    req.send(null);
    }
    si req a change son status en 200
    il vas retourner la reponse du code php

    le code php(message.php)


    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
     
     
    <?php
    $dbh='mysql:host=localhost;dbname=nombd;';
    try{
    $pdo=new PDO($dbh,'util','pass');
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $cmd="select count(Mat) from membre where Username='".$_GET['username']."'";
    foreach($pdo->query($cmd)as $row){
    if ($row[0]!=0){
    echo ('<font color="#ffffff">ce nom utilisateur est deja utilise</font>');
     
    }
    else{
    echo ('<font color="#ffffff">nom utilisateur accepte</font>');
    }
    }
    }
    catch(PDOException $e){
    echo $e->getMessage(); 
    }
    ?>

    et bien , tu vois le code généré est <font color="#ffffff">nom utilisateur accepte</font>

    ou bien
    <font color="#ffffff">ce nom utilisateur est deja utilise</font>

    selon le cas de $row[0]

  17. #17
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    OK

    Comme il n'y a pas de problème apparent ailleurs, ça doit être ton getXHR() qui fonctionne mal.
    Essaye une autre méthode. Ici par exemple (au hasard) ...

    A+

  18. #18
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    merci de votre aide ...
    pourtant j'y vois une chose incomprehensible

    if(window.XMLHttpRequest){
    dans mon code getXHR j'écris:


    en majuscul pour XMLHTTPR

    est ce je j'ai une erreur ici???

  19. #19
    Membre confirmé Avatar de simotaqi
    Inscrit en
    Février 2010
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 144
    Par défaut
    oui , c'est ca merci beaucoup cher ami !!!
    j'ai trouvé l'erreur est ca marche bien mnt

    l'erreur est

    XMLHTTPRequest en maj

    alors que ca doit etre XMLHttpRequest

    je vais ajouter une exp aux exp d'ajax

    merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Ajax et XmlHttpRequest.open
    Par tostaky8 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/02/2009, 23h03
  2. Pb Ajax et XmlHttpRequest.open()
    Par tostaky8 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/02/2009, 09h41
  3. [AJAX] sondage marche pas sous firefox (lotus notes)
    Par watchabongo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2008, 10h00
  4. opener sous firefox
    Par blowdesign dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 05/07/2006, 12h29
  5. Réponses: 2
    Dernier message: 23/04/2006, 21h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo