11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'utilise le code suivant pour soumettre mon formulaire sans recharger la page, mais dans la première partie de la boucle if j'aimerais pouvoir soumettre ce formulaire comme le ferait classiquement PHP sans jQuery (en rechargeant de nouveau une page).

Dans ce cas, le but est de transmettre les données renseignées dans le formulaire (=> la partie "data:myForm.serialize()+"&id_town="+id_town," ) à l'url indiqué dans le "action" du form.

Comment faire ?

html code:
<form id="inscription_form_home" action="index.php?module=membres&action=inscription" method="post" >
...
</form> 


jQuery:
$("#inscription_form_home").submit(function() { 
	var myForm = $(this);

	$.ajax({
		dataType: 'json',
		type: "POST",
		url: "traitement_profil.php",
		data:myForm.serialize()+"&id_town="+id_town,
		success: function(data){
			if (data.a == "a" || data.a == "b"  ){
				 // Transmettre les "data" à l'url du form
			}else{					
				alert("Inscription validée.");
			}
		},
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.responseText);
			alert(thrownError);
		}
	});
return false;
});

Modifié par Tchernobyl (30 Oct 2012 - 20:03)
Bonsoir,
peut-être juste en écrivant
if (data.a == "a" || data.a == "b"  ){
    return true;
}

Modifié par loicbcn (30 Oct 2012 - 21:59)
Salut,

J'ai essayé et ça fait planter la fonction. J'ai également essayé de faire un $("#inscription_form_home").submit(); mais ça me fait une boucle infinie (logique en fait...).

Je pense que la solution est un peu plus complexe. Smiley cligne
Modifié par Tchernobyl (30 Oct 2012 - 22:55)
Je ne crois pas qu'elle soit si complexe que ça.
Tu peux utiliser une variable, et selon la valeur de cette variable tu fais "return true" ou false
var withajax = true;
$("#inscription_form_home").submit(function() { 
	var myForm = $(this);
        if( !withajax ) return true;

	$.ajax({
		dataType: 'json',
		type: "POST",
		url: "traitement_profil.php",
		data:myForm.serialize()+"&id_town="+id_town,
		success: function(data){
			if (data.a == "a" || data.a == "b"  ){
                           withajax = false;
                           $("#inscription_form_home").submit();
			}else{					
				alert("Inscription validée.");
			}
		},
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.responseText);
			alert(thrownError);
		}
	});
return false;
});