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 éprouvé
    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 : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    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 sénior

    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
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    a priori tu récupères du caractère, mais tu testes du numérique

    Essaye avecA+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre éprouvé
    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 : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    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 averti
    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 : 45
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Points : 378
    Points
    378
    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
    D'abord ils vous ignorent, ensuite ils se moquent de vous, puis ils vous combattent, enfin vous gagnez (Gandhi)

  5. #5
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    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+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre averti
    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 : 45
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Points : 378
    Points
    378
    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);
            }
        }
    }
    D'abord ils vous ignorent, ensuite ils se moquent de vous, puis ils vous combattent, enfin vous gagnez (Gandhi)

  7. #7
    Expert éminent sénior

    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
    Points : 36 571
    Points
    36 571
    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+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

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