AJAX JQuery problème IF
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je vous présente mon problème:
J'ai essayer pour m'entraîner de faire un peut d'AJAX avec JQuery.
Lorsque je clique sur envoyer, la page de traitement doit envoyer 'pseudoExist', et cela fonctionne.
J'arrive à l'afficher comme ceci:
Mais dès que je rajoute un IF :
L'alerte de fonctionne plus. Je ne sais pas de quoi cela vient, merci de m'aider. Sachant que en vérifiant dans l'inspecteur, la page traitement.php renvoie bien 'pseudoExist'.
Je vous présente mon problème:
J'ai essayer pour m'entraîner de faire un peut d'AJAX avec JQuery.
Lorsque je clique sur envoyer, la page de traitement doit envoyer 'pseudoExist', et cela fonctionne.
J'arrive à l'afficher comme ceci:
$(document).ready(function(){
$("#submit").click(function(){
$.post(
'traitement.php',
{
pseudo : pseudo,
password : password,
mail : mail
},
function(data){
alert(data);
},
'text'
}
);
return false;
});
});
Mais dès que je rajoute un IF :
$(document).ready(function(){
$("#submit").click(function(){
$.post(
'traitement.php',
{
pseudo : pseudo,
password : password,
mail : mail
},
function(data){
if (data == 'pseudoExist'){
alert(data);
}
},
'text'
}
);
return false;
});
});
L'alerte de fonctionne plus. Je ne sais pas de quoi cela vient, merci de m'aider. Sachant que en vérifiant dans l'inspecteur, la page traitement.php renvoie bien 'pseudoExist'.
6 réponses
-
Bonjour !
Tu est sûr que tu retourne exactement cette chaîne (pseudoExist) ? Sans espace ni code html ?
Je ne vois pas vraiment pourquoi il ne ferait pas l'alerte sinon.
(Je suppose que ton site n'est pas en ligne ? :/) -
Bonjour
Je suppose que ton 'pseudoExist' renvoyé par le traitement.php est accompagné d'un caractère de fin de ligne.
Peux-tu faire un alert(data.length) pour voir combien il y a de caractères ? -
Après examen plus poussé, le code que tu donnes est faux. Après 'text', il devrait y avoir une parenthèse droite ) qui correspond à l'ouverture $.post( . Toi tu as mis une accolade } . Ton premier code qui soi-disant marche ne marche pas en fait.
Tu as peut-être quand même vraiment un problème de caractères de fin de ligne si tu as laissé des lignes vides après le ?> à la fin de traitement.php. C'est pour ça qu'il est recommandé de NE PAS mettre la balise ?> à la fin des fichiers php. Ça t'étonne ? C'est dans la doc (3e paragraphe) -
Tu ne pourrais pas le coller en texte ? Un copier-coller d'image, ça ne donne pas grand-chose
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tu as vraiment :
{ pseudo : pseudo, password : password, mail : mail }
Dans ton code ?
Les variables pseudo, password et mail sont-elles définies ?-
-
Effectivement j'avais supprimer le code permettant de set ces variables. Mais en rajoutant $("#pseudo").val(); pour pseudo etc... le problème reste le même il me semble.
<!DOCTYPE html> <html> <head> <title>My website</title> <link href="css/style.css" rel="stylesheet" type="text/css"> <meta charset="utf-8"> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css"> </head> <body> <div class="content"> <div class="fill"> <div id="form"> <form method="post" action="#"> <fieldset> <legend>Inscription</legend> <div id="error"> </div> <div id="sucess"> </div> <input type="text" name="pseudo" id="pseudo" placeholder="Votre pseudonyme"><br> <input type="password" name="pwd" id="pwd" placeholder="Votre mot de passe"><br> <input type="password" name="confirm" id="confirm" placeholder="Confirmez le mot de passe"><br> <input type="email" name="mail" id="mail" placeholder="Votre adresse e-mail"><br> <input type="submit" id="submit" value="S'inscrire"> </fieldset> </form> </div> </div> </div> <!-- JS --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#submit").click(function(){ $.post( 'traitement.php', { pseudo : $("#pseudo").val(); password : $("#pwd").val(); mail : $("#mail").val(); }, function(data){ if (data == 'pseudoExist'){ alert(data); return false; } }, 'text'); return false; }); }); </script> </body> </html>
-
-
{ pseudo : $("#pseudo").val(); password : $("#pwd").val(); mail : $("#mail").val(); }
Les 3 éléments doivent être séparés par des virgules, pas des points-virgules.