11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir,

$(document).ready( function () {
	$("#login").submit( function() {							 
		$.ajax({
			type: "POST",
			url: "unepage.php",
			data: "oldpass="+$("#oldpass").val()+"&pass1="+$("#pass1").val()+"&pass2="+$("#pass2").val(),
			
			beforeSend: function() {
				$("span#erreur").html("<image src=\"images/ajax-loader.gif\" />");
			},
			success: function(msg){
				if(msg==1) {
					$(location).attr('href','valid.php');
				} else {
					$("span#erreur").html("<div id=\"alerte\">Erreur : mots de passe incorrectes, recommencez.<br/ ><br />"+msg+"</div>");
				}
			}
		});

		return false;
	});
});


Si msg retourne 1, la redirection vers valid.php ne se fait pas, pourquoi ?

Merci d'avance Smiley smile
Modifié par Hayreon (16 Nov 2010 - 07:06)
Tu as bien vérifier j'imagine que tu arrives à ce code là (avec simplement alert('ok')) ?

Par contre, je ne connaissais pas (et ça a l'air sympa) néanmoins, je pense qu'il faut indiquer l'url complet (en commençant par http).
Je l'utilise actuellement sur un autre site (développé exactement de la même manière) et ça marche, je ne comprend pas pourquoi la ça plante Smiley confus

setTimeout("$(location).attr('href', 'index.html');", 3000);


Ici, une redirection vers index.html au bout de 3 secondes.

Structure de la page :

page.html

<html>

<script type="text/javascript" src="script.js"></script>

un formulaire

</html>


Le formulaire est validé avec ajax/jquery.

Pour te répondre, msg est bien égale à 1, tout fonctionne sauf la redirection Smiley fache
Modifié par Hayreon (15 Nov 2010 - 19:38)
Et pourquoi, tu n'utilises pas le débranchement de base :
window.location.replace('http://xxxxxxx') ;
Salut,

Peut-être que ton return false pose un problème.
Essaye sans pour vérifier. Si je suis dans le juste tu vas devoir voir ça autrement Smiley cligne

A bientôt
Bonsoir

La variable msg est-elle vraiment égale à l'entier 1 ?
En gros es-tu sûr que ton script "unepage.php" renvoie un entier ?
Pour illustrer ce que je veux dire, voir le paramètre dataType de ajax() : http://api.jquery.com/jQuery.ajax/

Travailler avec un retour json me semble plus sûr.
Bonjour à tous,

La première solution fonctionne.

window.location.replace('http://xxxxxxx') ;


Je vais m'assurer de la 2me solution même si en faisant $("#div").html(msg); il me met bien 1. Pour Json, je vais voir, mais je n'y connait rien.

Merci pour ces réponses et bonne journée !
Modifié par Hayreon (16 Nov 2010 - 07:05)
a écrit :
JuJu57

Peut-être que ton return false pose un problème.


Non, ça empeche le navigateur de renvoyer directement vers index.html#


Pour conclure, je viens de trouver le problème : c'est mon fichier jquery.js !!! Je me suis aperçu qu'il faisait 6Ko de plus que celui de mon autre site ou ça fonctionne Smiley biggol .

Merci à tous encore Smiley biggrin