Ajax et la récupération de data après traitement

Répondre
iviewclear
le 08/01/2011 à 15:14
iviewclear
Bonjour à tous

Bon j'ai un formulaire d'identification simple avec 2 input dont voici le code
  1. <form id="formconnexion" method="post" action="page2.php">
  2. <div class="server-info" id="resultat">Connectez-vous !</div>
  3. <div class="server-info">identifiant&nbsp;
  4. <input type="text" name="login" id="login2" style="font-size: smaller; width: 70px;" value=""/></div>
  5. <div class="server-info">Mot de passe&nbsp;
  6. <input type="password" name="pass" id="password2" style="font-size: smaller; width: 70px;" value=""/>
  7. <!--<input type="submit" name="connexion" value="Connexion" onchange="go()"/>-->
  8. <input type="button" name="connexion" value="Connexion" onclick="go()"/>
  9. </div>
  10. <a href="#" class="button red" title="Logout">
  11. <span class="smaller">LOGOUT</span></a>
  12. </form>


Je souhaite envoyer ces info dans un fichier PHP pour traitement afin qu'ensuite je puisse récupérer un morceau de texte à afficher quelque part dans un DIV 'resultat' en foncion du résultat du traitement.
Je me sers donc d'AJAX !!!
et j'ai cela comme fonctions js :
  1. <script type="text/javascript">

  2. function getXMLHttpRequest() {
  3. var xhr = null;

  4. if (window.XMLHttpRequest || window.ActiveXObject) {
  5. if (window.ActiveXObject) {
  6. try {
  7. xhr = new ActiveXObject("Msxml2.XMLHTTP");
  8. } catch(e) {
  9. xhr = new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11. } else {
  12. xhr = new XMLHttpRequest();
  13. }
  14. } else {
  15. alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
  16. return null;
  17. }
  18. return xhr;
  19. }

  20. function go(){
  21. var xhr = getXMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ txtAafficher = xhr.responseText; document.getElementById('resultat').innerHTML = txtAafficher;
  22. alert(txtAafficher);
  23. }
  24. else { alert('There was a problem with the request.');
  25. }
  26. }
  27. xhr.open("POST","page.php",true);
  28. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

  29. var argLogin = encodeURIComponent(document.getElementById('login2').value);
  30. var argPass = encodeURIComponent(document.getElementById('password2').value);
  31. var data = "login=" + argLogin + "&pwd" + argPass;
  32. xhr.send(data);
  33. }
  34. </script>


Et pour le PHP, je fais cela :
  1. <?php

  2. header("Content-Type: text/plain");

  3. $login = $_POST['login'];
  4. $pass = $_POST['pass'];
  5. // je teste si le fomulaire à été envoyé
  6. if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
  7. if ((isset($_POST['login']) && !empty($_POST['login']))
  8. && (isset($_POST['pass']) && !empty($_POST['pass']))){

  9. // connexion à la base
  10. $base = mysql_connect('localhost','root','');
  11. mysql_select_db('base', $base);
  12. // construction de la requete
  13. /*$sql = 'SELECT count(*)
  14. FROM membre
  15. WHERE login="'.$login.'"
  16. AND pass_md5="'.$pass.'"'; */

  17. $sql = 'SELECT count(*)
  18. FROM membre
  19. WHERE login="'.$_POST['login'].'"
  20. AND pass_md5="'.$_POST['pass'].'"';

  21. $requete = mysql_query($sql) or die('erreur !!!'.$sql.'<br>'.mysql_error());
  22. $resultat = mysql_fetch_array($requete);

  23. if(mysql_num_rows($resultat) == 1){
  24. echo "Bonjour " . $login ;
  25. }
  26. else {
  27. echo "Inscrivez-vous !!";
  28. }
  29. }
  30. else {
  31. echo = 'Au moins 1 champ vide';
  32. }
  33. }
  34. ?>


Mon souci actuel :
Je passe 3 fois dans mon test alert('There was a problem with the request.'); c'est à dire que 3 fenêtres d'alerte s'affichent
Est-ce un souci PHP dans mon traitement ou autre chose ??

Il est à noter que dans je passe par un PHP simple comme celui_ci cela marche j'ai bien un retour

  1. <?php

  2. header("Content-Type: text/plain");

  3. $login = (isset($_POST["login"])) ? $_POST["login"] : NULL;
  4. $pass = (isset($_POST["pass"])) ? $_POST["pass"] : NULL;

  5. if ($login && $pass) {
  6. echo "Bonjour " . $login ;
  7. } else {
  8. echo "FAIL";
  9. }
  10. ?>

Vous auriez une petite idée à me soumettre s il vous plait mesdames et messieurs

Merci à vous
Iviewclear
LupusMic
le 12/03/2011 à 07:33
LupusMic
Pour ceux qui passeraient après toi, pourrais-tu indiquer la solution à ton problème ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours