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

JavaScript Discussion :

[AJAX] J'ai un script AJAX qui ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [AJAX] J'ai un script AJAX qui ne fonctionne pas
    Salut tout le monde,

    J'ai un super scrpt ajax qui ne fonctionne pas

    J'ai une bd mysql avec plusieurs tables...

    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
       1.
          CREATE TABLE membre
       2.
          (
       3.
              id    INTEGER    NOT NULL PRIMARY KEY,
       4.
              pseudo    VARCHAR(20)    NOT NULL
       5.
          );
       6.
     
       7.
          INSERT INTO membre VALUES ('1', 'CyberDenix');
       8.
          INSERT INTO membre VALUES ('2', 'CyberDavid');
       9.
          INSERT INTO membre VALUES ('3', 'Cyber');
    J'ai un script php pour me loger à ma bd :

    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
            <?php
      
           
       
          mysql_connect('localhost', 'root', 'mdp');
       
          mysql_select_db('deliberations');
      
           
       
          $result = mysql_query("SELECT pseudo FROM membre WHERE pseudo='".$_GET['pseudo']."'" );
       
          if (mysql_num_rows($result) >= 1)
       
           echo '1';
       
          else
      
           echo '0';
      
           
      
          ?>
    et la page html et javascript/AJAX qui ne fonctionne pas :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
          <html>
     
          <head>
              <title>AJAX</title>
              <script type='text/javascript'>
     
     
     
             function writediv(texte) {
     
               document.getElementById('pseudobox').innerHTML = texte; //permet de rafraichir la page, tu modifies le innerHTML de l'element à rafraichir avec le responseTexte d'ajax ...	
     
             }
     
     
     
             function verifPseudo(pseudo) {
              if (pseudo != '') {
     
                 if (pseudo.length < 2)
     
                   writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
     
                 else if (pseudo.length > 20)
     
                   writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
     
                 else if (texte = file('./verifpseudo.php?pseudo='+escape(pseudo))) { // C'est ici que tout se joue !
     
                   if (texte == 1)
     
                     writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
     
                   else if(texte == 0)
     
                     writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
     
                   else
     
                     writediv(texte);
     
     
               }
     
             }
     
     
     
             function file(fichier) {
     
               if (window.XMLHttpRequest) // FIREFOX
     
                 xhr_object = new XMLHttpRequest();
     
               else if(window.ActiveXObject) // IE
     
                 xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
          else
     
                 return(false);
     
               xhr_object.open("GET", fichier, false);
     
               xhr_object.send(null);
     
               if (xhr_object.readyState == 4)
     
                 return xhr_object.responseText;
     
               else
     
                 return false;
     
             }
     
     
     
           </script>
     
          </head>
     
     
     
          <body>
     
           <form action=''>
             <input type='text' name='pseudo' onKeyUp="verifPseudo(this.value)" />
             <div id='pseudobox'></div>
     
           </form>
     
          </body>
     
          </html>
    Rien ne se passe, la zone de texte devrait changer de couleur mais rien ne se passe.

    Sauriez-vous m'aider svp ?

    Merci d'avance.

  2. #2
    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,
    a priori tu récupères du caractère, mais tu testes du numérique

    Essaye avecA+

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    a priori tu récupères du caractère, mais tu testes du numérique

    Essaye avecA+
    Bonjour,

    Merci pour ta réponse.

    OK je viens de tester, cela ne fonctionne malheureusement pas

    Merci encore à toi

  4. #4
    Membre expérimenté
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Par défaut
    salut,
    tu es sur que tu as bien initialisé ton objet ajax, il manque l'événement onreadystatechange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonObjet.onreadystatechange = HandleHTTPResponse;
    Lis cet article

  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
    Citation Envoyé par HumanTool Voir le message
    il manque l'événement onreadystatechange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr_object.open("GET", fichier, false);
    Pas pour un appel synchrone, ce qui est le cas ici ...

    A+

  6. #6
    Membre expérimenté
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Par défaut
    ok bien vu
    cependant est ce que le if avec un seul = est correct :
    de plus il te manque une accolade à la fin de fonction verifPseudo
    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
    function verifPseudo(pseudo) 
    {    if (pseudo != '') 
        {    if (pseudo.length < 2)
                writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
            else if (pseudo.length > 20)
                writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>');
            else if (texte = file('./verifpseudo.php?pseudo='+escape(pseudo))) 
            { // C'est ici que tout se joue !
                if (texte == 1)
                    writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
                else if(texte == 0)
                    writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
                else
                    writediv(texte);
            }
        }
    }

  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 HumanTool Voir le message
    cependant est ce que le if avec un seul = est correct :
    Oui, c'est une manière de tester que l'affectation a fonctionné.
    de plus il te manque une accolade à la fin de fonction verifPseudo
    Là, par contre, pas glop

    Il devait y avoir une erreur JS signalée (si elles sont activées dans le nav) ...

    A+

Discussions similaires

  1. Script Js qui ne fonctionne pas en ligne
    Par arnaudlidz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/07/2016, 22h02
  2. Script SVG qui ne fonctionne pas avec FF uniquement
    Par bronon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/02/2015, 23h16
  3. Script powershell qui ne fonctionne pas
    Par Kira77 dans le forum C#
    Réponses: 9
    Dernier message: 05/09/2013, 16h30
  4. Réponses: 5
    Dernier message: 17/12/2008, 14h18
  5. Script JSP qui ne fonctionne pas sur n'importe quel poste
    Par vannary dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 18/12/2006, 11h56

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