Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2011, 14h53   #1
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
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 :
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 :
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 !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 16h30   #2
Membre confirmé
 
Homme Lionel Chaumeau
Développeur Web
Inscription : octobre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Lionel Chaumeau
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 : 75
Points : 264
Points : 264
Bonjour,
Si tu rajoutes la fonction complete suivante, ça te donne quoi ?

Code :
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....
__________________
My laptop, my bike and my double-sticks...
kalimukti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 16h47   #3
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
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 ?
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 17h13   #4
Membre confirmé
 
Homme Lionel Chaumeau
Développeur Web
Inscription : octobre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Lionel Chaumeau
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 : 75
Points : 264
Points : 264
arff...
essaye avec une serialize plutôt, pour voir:
Code :
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 :
header('Content-Type: text/html; charset=iso-8859-1');
(si tu as ton code client en iso, bien sûr )
__________________
My laptop, my bike and my double-sticks...
kalimukti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 19h39   #5
Membre confirmé
 
Homme Lionel Chaumeau
Développeur Web
Inscription : octobre 2011
Messages : 75
Détails du profil
Informations personnelles :
Nom : Homme Lionel Chaumeau
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 : 75
Points : 264
Points : 264
En me relisant, il y a une erreur dans le code que j'ai mis .
Il vaut mieux:

Code javascript :
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(),
                          ...
__________________
My laptop, my bike and my double-sticks...
kalimukti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h12.


 
 
 
 
Partenaires

Hébergement Web