Passage de paramètre laborieux, dans une transaction AJAX
Salut, j'ai un problème en utilisant $.post(...,{...}, function(data){...});
voici une partie du code 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| if($valid){
$req = $bdd->prepare('SELECT * FROM membre WHERE pseudo=:pseudo');
$req->execute(array(':pseudo'=>$pseudo));
if($req->rowCount()>0){
$valid = false;
$pseudoerreur = 'Pseudo déja pris';
if($_POST['ajax']==1){
echo 'Pseudo pris';
exit();
}
$req = $bdd->prepare('select * from membre where email=:email');
$req->execute(array(':email'=>$email));
if($req->rowCount()>0){
$valid = false;
$emailerreur = 'email existant';
if($_POST['ajax']==1){
echo 'Email existant';
exit();
}
}
$req->closeCursor();
if($valid){
$req = $bdd->prepare('INSERT INTO membre (pseudo,email,pass) VALUES (:pseudo,:email,:pass)');
$req->execute(array(':pseudo'=>$pseudo,':email'=>$email,':pass'=>sha1($pass)));
$req->closeCursor();
if($_POST['ajax']==1){
echo true;
exit();
}
else{
header('location: index.html');
}
}
} |
et voici mon script jquery:
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 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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| $('#signup-submit').click(function(){
$('.loader').show();
/*Récupérer pseudo, email et pass dans des variables ainsi la page à laquelle les variables seront envoyées et une variable de test*/
var link = 'signup.php';
var pseudo = $('#pseudo').val();
var email = $('#email').val();
var pass = $('#signup-pass').val();
var valid = true;
/*vérifier un pseudo vide*/
if($('#pseudo').val()=='')
{
valid = false;
$('.loader').fadeOut();
$('#pseudo').next('.error').fadeIn();
}
else
{
$('.loader').fadeOut();
$('#pseudo').next('.error').fadeOut();
}
/*vérifier un email valide*/
if(!$('#email').val().match('/^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/'))
{
$valid = false;
$('.loader').fadeOut();
$('#email').next('.error').fadeIn();
}
else
{
$('.loader').fadeOut();
$('#email').next('.error').fadeOut();
}
/*vérifier un mot de passe vide*/
if($('#signup-pass').val()=='')
{
valid = false;
$('.loader').fadeOut();
$('#signup-pass').next('.error').fadeIn();
}
else
{
$('.loader').fadeOut();
$('#signup-pass').next('.error').fadeOut();
}
/*Si valid est true*/
if(valid)
{
$.post(link,{pseudo: pseudo, email: email, pass: signup-pass, ajax: '1'},
function(data){
if(data==true)
{
$('#signup-form').slideUp();
$('#success-message').sldeDown().text('Consultez votre email');
}
else if(data=='Pseudo pris')
{
$('.loader').fadeOut();
$('#pseudo').next('.error').fadeIn();
}
else if(data=='Email existant')
{
$('.loader').fadeOut();
$('#email').next('.error').fadeIn();
}
});
}
return false;
}); |
Il m'affiche l'erreur Notice: Undefined index: ajax in...
J'ai compris que la variable ajax dans $.post n'est pas envoyée vers ma page php.
Merci d'avance.