Partage
  • Partager sur Facebook
  • Partager sur Twitter

[AJAX] Récupérer une valeur d'un post

Sujet résolu
    14 juin 2006 à 17:16:24

    Salut,
    Je vien de commencé à m'intérrésser à l'Ajax, mais la j'ai un problème. J'ai une page: index.html avec:
    ><input name="login" type="text" id="login" size="10">
    que j'envoie en POST.
    ma page javascript :
    var http; // Notre objet XMLHttpRequest
    var log = document.getElementById('login');
    var data = null;
    function createRequestObject()
    {
        var http;
        if(window.XMLHttpRequest)
        { // Mozilla, Safari, ...
            http = new XMLHttpRequest();
        }
        else if(window.ActiveXObject)
        { // Internet Explorer
            http = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return http;
    }

    function gestion()
    {
           
        document.getElementById('stat').innerHTML = '<em>Chargement...</em>';
        http = createRequestObject();
        data = 'login='+log;
        http.open('post', 'test2.php', true);
        http.onreadystatechange = handleAJAXReturn;
        http.send(data);
    }

    function handleAJAXReturn()
    {
        if(http.readyState == 4)
        {
            if(http.status == 200)
            {
                document.getElementById('stat').innerHTML = http.responseText;
            }
            else
            {
                document.getElementById('stat').innerHTML = "<strong>N/A</strong>";
            }
        }
    }

    Et voila ma page php:
    <?php

            $login = $_POST['login'];
           
            mysql_connect("*****","******","*****");
            mysql_select_db("******");
           
            $sql_info = mysql_query("SELECT * FROM phpbb_users");
           
            $donnees = mysql_fetch_array($sql_info);
           
            if($donnees['login'] == $login)
            {
                    echo 'OK';
            }
            else
            {
                    echo 'Aucun ID';
            }
            mysql_close();
    ?>

    Et donc, je n'arrive pas a récupérer et comparé le input 'login', de la page html, pour la comparé dans la page PHP, en passant par le javascript, pour que ça soit de l'Ajax.
    D'avance merci, si quelqu'un peut me donner un coup de main.
    @+
    • Partager sur Facebook
    • Partager sur Twitter
      14 juin 2006 à 20:19:27

      A quel moment appelles-tu une de tes fonctions JS ? Là il y a les fonctions mais elles ne sont pas appelées ^^
      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2006 à 20:33:18

        je l'appel comme ça:
        <a href="" onClick="gestion(); return false;">T</a>

        • Partager sur Facebook
        • Partager sur Twitter
          14 juin 2006 à 20:57:22

          Et comme ça ?

          data = 'login='+log.value;
          • Partager sur Facebook
          • Partager sur Twitter
            14 juin 2006 à 21:02:23

            non, toujours pas, il m'affiche OK, alors que ce que je met n'éxiste pas dans la base de donnée.
            • Partager sur Facebook
            • Partager sur Twitter
              15 juin 2006 à 0:07:08

              Plusieurs petites choses pour ton fichier php. Déjà il faut faire une boucle avec un mysql_fetch_array(), et pas juste un seul mysql_fetch_array(). Ensuite essaie voir avec un echo $login; pour voir ce qui est transféré.
              • Partager sur Facebook
              • Partager sur Twitter
                15 juin 2006 à 10:20:12

                salut,
                j'ai testé de mettre un echo $login; et ça ne fonctionne toujours pas, il ne m'affiche pas le login qui est dans mon input type="text".
                Si quelqu'un,à d'autres idée, a me faire tester....
                @+
                • Partager sur Facebook
                • Partager sur Twitter
                  15 juin 2006 à 11:05:13

                  Tu peux essayer de mettre par exemple un bouton comme ceci :

                  <input type="button" value="Valider" onclick="gestion(this.form);" />


                  et avec ta fonction gestion() comme ça :

                  function gestion(f)
                      {
                      document.getElementById('stat').innerHTML = '<em>Chargement...</em>';
                      http = createRequestObject();
                      data = 'login='+f.login.value;
                      http.open('post', 'test2.php', true);
                      http.onreadystatechange = handleAJAXReturn;
                      http.send(data);
                      }
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 juin 2006 à 11:16:29

                    ça ne récupère toujours pas, le login.
                    Si ça te dérange pas, peut tu me faire le fichier entier .js , et me dire comment t'appel la fonction.
                    Il faudrait que le fichier JS, tu le fasse a t'a manière de faire, et non pas, avec ce que je t'es donné. Enfin, si tu veux bien... :o
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 juin 2006 à 11:59:04

                      Le JS :

                      function ajax(f)
                              {
                              document.getElementById('stat').innerHTML = '<em>Chargement...</em>';
                              var login = f.login.value;
                              var xhr;
                              if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
                              else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
                              else return;
                              xhr.open('POST','test2.php',true);
                              xhr.onreadystatechange = function()
                                      {
                                      if (xhr.readyState == 4)
                                              {
                                              if (xhr.status == 200) document.getElementById('stat').innerHTML = xhr.responseText;
                                              else document.getElementById('stat').innerHTML = '<strong>N/A</strong>';
                                              }
                                      }
                              xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
                              var data = 'login='+escape(login);
                              xhr.send(data);
                              }


                      A appeler comme ça :

                      <form method="post" action="page.php">
                      Login : <input type="text" name="login" /><br />
                      <input type="button" value="Envoyer" onclick="ajax(this.form);" />
                      </form>
                      <div id="stat"></div>
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 juin 2006 à 12:13:43

                        et peut tu me donner aussi, un code pour le php. Parce que je ne sais pas ou je merde !!! J'te remerci d'avance.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 juin 2006 à 14:13:52

                          <?php
                          error_reporting(E_ALL);
                          header('Content-type: text/html; charset=iso-8859-1');
                          mysql_connect('','','');
                          mysql_select_db('');
                          $query = mysql_query('SELECT * FROM phpbb_users');
                          $echo = 'Aucun ID';
                          while ($donnees = mysql_fetch_array($query))
                              {
                              if ($donnees['username'] == $_POST['login'])
                                  {
                                  $echo = 'OK';
                                  break;
                                  }
                              }
                          echo $echo;
                          mysql_close();
                          ?>


                          J'ai mis error_reporting à E_ALL pour voir toutes les erreurs, et j'ai appelé le champs de la bdd username vu que visiblement c'est une table d'un forum phpBB. La table phpbb_users n'a pas de champs login.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 juin 2006 à 16:23:13

                            j'te remercie, ça fonctionne. Maintenant, j'ai un autre probleme, c'est que si je met un nom par exemple 'anonyme' et que dans la BD il y a marqué 'Anonyme', il me met aucun ID !!!! a cause de la majuscule, comment je peut faire pour qu'il me mette OK ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              15 juin 2006 à 16:28:21

                                  if (strtolower($donnees['username']) == strtolower($_POST['login']))
                                      {
                                      $echo = 'OK';
                                      break;
                                      }


                              A remplacer dans le while.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 juin 2006 à 16:30:03

                                ok, j'te remercie, encore une fois, de ta patience et de ton aide.
                                Peut etre qu'un jour j'aurais encore besoin de toi, pour un autre probleme.... :-°
                                @+
                                • Partager sur Facebook
                                • Partager sur Twitter

                                [AJAX] Récupérer une valeur d'un post

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown