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

jQuery Discussion :

Requête ajax avec $.ajax()


Sujet :

jQuery

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut Requête ajax avec $.ajax()
    Bonjour,

    J'essaye d'établir une requêe Ajax avec l'objet $.ajax() de JQuery, j'ai trouvé un tutoriel mais le test ne fonctionne pas, le problème est que ça ne passe jmais par le "success", voici le .js et le .php:

    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
    $(document).ready(function() 
    { 
    	$("#logForm").submit( function() 
    	{	
    		alert($("#logForm .username").val());
    		var ret = false;
    		$.ajax(
    		{ 
    		   type: "POST", 
    		   url: "check_login.php",
    		   data: "email=" + $("#logForm .username").val() + "&pass=" + $("#logForm .password").val(),
    		   success: function(res)
    		   {
    				alert('Success: ' + res + ' !');
    				if (res == 0)
    					$("#logBox .error_log").html("Email incorrect.");
    				else if (res == 1)
    					$("#logBox .error_log").html("Pass incorrect.");
    				else if (res == 2)
    					ret = true;
    		   }
    		});
    		return (ret);
    	});
    });
    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
    <?php
    		$email = $_POST['email'];
    		$pass = $_POST['pass'];
     
    		$this->db->select('email, password');
    		$this->db->from('personne');
    		$this->db->where('email', $email);
    		$logs = $this->db->get();
     
    	$res = Array(
    			'email' => false,
    			'pass'	=>	false
    		);
     
    	if ($logs->num_rows() > 0)
    	{
    		if ($logs->result()->password == $pass))
    		{
    			$res['pass'] = true;
    			echo '2';
    		}
    		else
    			echo '1'; 
    	}
    	else
    		echo '0';
    Merci pour l'aide !

  2. #2
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    Si tu rajoutes la fonction complete suivante, ça te donne quoi ?

    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
    $(document).ready(function() 
    { 
    	$("#logForm").submit( function() 
    	{	
    		alert($("#logForm .username").val());
    		var ret = false;
    		$.ajax(
    		{ 
    		   type: "POST", 
    		   url: "check_login.php",
    		   data: "email=" + $("#logForm .username").val() + "&pass=" + $("#logForm .password").val(),
    		   success: function(res)
    		   {
    				alert('Success: ' + res + ' !');
    				if (res == 0)
    					$("#logBox .error_log").html("Email incorrect.");
    				else if (res == 1)
    					$("#logBox .error_log").html("Pass incorrect.");
    				else if (res == 2)
    					ret = true;
    		   }
                        complete: function(obj, res)
                        {
                             alert (res);
                        }
    		});
    		return (ret);
    	});
    });
    De plus, si tu utilises firebug (sous firebug), dans la partie réseaux de la console, tu peux examiner tes requêtes ajax (très très pratique), avec les objets REQUEST et RESPONSE, et du coup, tu peux voir ce qui est retourné par ta requête....

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonjour,

    Merci pour la réponse, lorsque je clique sur l'envoie du formulaire, la page se recharge mais aucune alert ne s'affiche.

    Si la page se raffraichit s'est donc que success retourne désormais true, pourquoi je n'ai aucune alert malgré ça ?

    Je viens de faire un essai avec firebug, ça a l'air effectivement très pratique mais il me sort tout le code de la page (celle sur laquelle est le formulaire pas celle vers laquelle la requête pointe) en Réponse sur la console, est-ce normal ?

  4. #4
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    arff...
    essaye avec une serialize plutôt, pour voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                     ...
                    $.ajax(
    		{ 
    		   type: "POST", 
    		   url: "check_login.php",
    		   data: $(this).serialize(),
                       ....
    et puis ça devrait aider de rajouter un header à ton fichier php. Vu que tu renvoies du texte, en début de ton fichier php, tu rajoutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: text/html; charset=iso-8859-1');
    (si tu as ton code client en iso, bien sûr )

  5. #5
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    En me relisant, il y a une erreur dans le code que j'ai mis .
    Il vaut mieux:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                    $("#logForm").submit( function() 
    	        {	
    		     alert($("#logForm .username").val());
    		     var ret = false;
                         monForm= $(this);
    		     $.ajax(
    		     { 
    		          type: "POST", 
    		          url: "check_login.php",
    		          data: monForm.serialize(),
                              ...

Discussions similaires

  1. problème avec une requête asyncrhone avec ajax
    Par piotrowski-s dans le forum Langage
    Réponses: 3
    Dernier message: 13/09/2012, 20h51
  2. [AJAX] Afficher résultat requête SQL avec ajax
    Par Kevfou dans le forum AJAX
    Réponses: 2
    Dernier message: 01/11/2011, 16h54
  3. [AJAX] Requête SQL avec AJAX
    Par Nanais19 dans le forum AJAX
    Réponses: 5
    Dernier message: 11/07/2011, 16h58
  4. [Prototype] Deux diaporamas avec Ajax.Request, Ajax.Updater et PeriodicalExecuter
    Par othmane126 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 02/06/2008, 00h37

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