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] La condition sur responseText ne fonctionne pas !


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Par défaut [AJAX] La condition sur responseText ne fonctionne pas !
    Bonjour à tous!!
    J'ai posté récemment où avec votre aide je suis arrivé à obtenir le réponse du serveur. Malheureusement cette réponse me donne du fil à retordre. Toutes les conditions que je mets sur cette réponse ne marche pas alors je sollicite votre aide à nouveau. Voici mon code:

    1-code du formulaire :
    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
     
    <form  name="log_user" method="POST">
                <table width="119%"  border="0" align="center">
                  <tr >
                    <td colspan="2" align="center"></td>
                  <tr>
                    <td colspan="2" class="lienbleugras">&nbsp;</td>
                  </tr>
                  <tr>
                    <td class="corps">Nom utilisateur </td>
                    <td><input name="login_user" type="text" id="login_user" /></td>
                  </tr>
                  <tr>
                    <td class="corps">Mot de passse </td>
                    <td><input name="password_user" type="password" id="password_user" /></td>
                  </tr>
                  <tr>
                    <td>&nbsp;</td>
                    <td>
                            <input  name="connexion" value="log_user" type="hidden" >
                            <input type="button" name="Submit" value="Valider" onclick="recupereParametre(login_user.value, password_user.value);"></td>
                  </tr>
             </table>
          </form>
    2- Code php de recupération
    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
     
    <?php
    	mysql_connect("localhost","root","");
    	mysql_select_db("dbmedia") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e.');
     
    	$result = mysql_query("SELECT * FROM tb_user");
     
    	while($donnees = mysql_fetch_array($result))
    	{
    		if($donnees['login'] == $_POST['login'])
    		{
    			if($donnees['Pword'] == $_POST['Pword'])
    			{
    				echo "true";//$donnees['Pword'];
    			}
    		}
    	}
    ?>
    3-Code Js:
    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
     
    var xhr = null
    	const m= "Utilisateur ou mot de passe incorrecte"
    	const url = "site_admin/administration.php";
     
    	if(window.XMLHttpRequest)
    	{
    		xhr = new XMLHttpRequest();
    		//xhr.overrideMimeType('text/xml');
    	}
    	else 
    	{
    		if(window.ActiveXObject)
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    		else
    		{
    			alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest");	
    		}
    	}
     
     
    	function recupereParametre(login, Pword)
    	{
    		xhr.onreadystatechange = function() {
     
    			if(xhr.readyState==1) 
    			{
    				alert(xhr.readyState + ": " + xhr.responseText)
    			}
     
    			if(xhr.readyState==2) 
    			{
    				alert(xhr.readyState + ": " + xhr.responseText)
    			}
     
    			if(xhr.readyState==3) 
    			{
    				alert(xhr.readyState + ": " + xhr.responseText)
    			}
     
     
    			if((xhr.readyState==4) && (xhr.status ==200))
    			{	
     
    				if(xhr.responseText=="true")
    				{
    					alert(xhr.readyState + ": " + xhr.responseText +' status:'+xhr.status);
    					document.location.href = url;
    				}
    				else if(xhr.responseText!="true")
    				{	
    					alert(xhr.readyState + ": mauvais");
    					var letext = document.getElementById("messageErr");	
    					letext.innerHTML == "";
    					letext.innerHTML = m;
    				}
    			}
    		};
    		xhr.open("POST","parametre.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		xhr.send("login="+login+"&Pword="+Pword);
    avec les "alert()" que j'ai placé dans les différents readyState je vois bien que la réponse qui doit être "true" est bien récupéré mais la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(xhr.responseText == "true")
    ne fonctionne pas.
    Merci de votre aide.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Certains caractères non imprimables doivent être présents dans la réponse, essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(/true/.test(xhr.responseText))
    Ceci dit, je comprends mal la façon dont tu récupères le résultat...
    Ce serait quand même plus simple avec une clause WHERE dans la requête SQL
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Par défaut
    Merci Bovino pour ta solution je vais l'essayer de suite et tu as fais aussi une très bonne remarque mais je début en php/MySql aussi et ma clause where m'envoyais une erreur de syntaxe jusqu' 02h du matin alors j'ai voulu faire simple pour le moment.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 149
    Par défaut
    He! ça fonctionne !!! merci hien! tu me sauve la vie.
    Mais je voulais savoir aussi comment m'y prendre pour que le bouton suivant ou précédent ne me ramène pas sur la page protégée par mot de passe aussi savez vous comment je peux afficher un tableau selon le résultat que fourni une requête ajax. Merci de ton aide

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

Discussions similaires

  1. [SystemTray][TrayIcon] mouseEntered sur TrayIcon ne fonctionne pas?
    Par kayzra dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 05/01/2008, 16h05
  2. Ma condition if / else ne fonctionne pas
    Par kryogen dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 11/10/2007, 18h39
  3. Réponses: 8
    Dernier message: 25/06/2007, 14h07
  4. ET logique sur pointeur ne fonctionne pas
    Par progfou dans le forum C++
    Réponses: 7
    Dernier message: 10/04/2007, 11h06
  5. Index sur datetime ne fonctionnant pas
    Par Pierrinot dans le forum Requêtes
    Réponses: 5
    Dernier message: 18/10/2004, 09h10

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