AJAX JQuery problème IF

Résolu/Fermé
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 - Modifié par tete0148 le 21/01/2014 à 17:38
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 - 24 janv. 2014 à 21:47
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:
$(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

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
21 janv. 2014 à 20:23
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 ? :/)
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
21 janv. 2014 à 20:47
La page traitement.php retourne, j'ai tout mis en commentaire pour la bdd :
<?php
echo 'pseudoExist';
?>
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
21 janv. 2014 à 20:53
Hum, tu a regarder l'encodage du fichier ? Au cas où tu aurait un p'tit BOM ?
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
22 janv. 2014 à 08:07
J'irai voir, je suis en cours là. merci de votre réponse
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
23 janv. 2014 à 19:11
Non tout est en sans UTF 8 sans bom
0
Utilisateur anonyme
24 janv. 2014 à 09:09
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 ?
0
Utilisateur anonyme
24 janv. 2014 à 09:52
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)
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 20:16
J'ai vérifié et remis les accolades correctement.
Mais désormais, le traitement.php de se charge plus.
je laisse tomber, merci de votre aide.
0
Utilisateur anonyme
24 janv. 2014 à 21:05
Faut pas te décourager si facilement. D'autant que ça marche très bien chez moi, après cette correction. C'était une parenthèse qu'il fallait remettre correctement, pas une accolade.
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:07
Oui j'ai remis cela.
Mais maintenant le problème c'est quand je clique sur submit, la page traitement de se charge pas selon l'inspecteur, or je vois pas pourquoi.
0
Utilisateur anonyme
24 janv. 2014 à 21:09
Peux-tu montrer ton code actuel ? Si tu as mal remis la parenthèse, le Javascript ne s'exécute pas, normal que la page traitement.php ne soit pas appelée.
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:12
http://puu.sh/6wF2S.png
0
Utilisateur anonyme
24 janv. 2014 à 21:14
Tu ne pourrais pas le coller en texte ? Un copier-coller d'image, ça ne donne pas grand-chose
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:15
$(document).ready(function(){
			$("#submit").click(function(){
				$.post(
				'traitement.php',
				
				{
				pseudo : pseudo
				password : password
				mail : mail
				},
				
				function(data){
				if (data == 'pseudoExist'){
					alert(data);
					return false;
				}
				},
				'text');
				return false;
			});
		});
0

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 ?
0
Et les virgules entre pseudo, password et mail ont disparu ?
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:24
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>
0
{
  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.
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:33
Merci tout fonctionne grâce à vous.
Je vous suis reconnaissant !!!
0
Utilisateur anonyme
24 janv. 2014 à 21:40
De rien.

Sais-tu qu'il existe sur les navigateurs modernes des consoles de débogage qui t'indiquent les erreurs de javascript ? Ça t'évite de tourner en rond trop longtemps, c'est comme ça que j'ai trouvé tes erreurs.
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:42
Puis-je avoir un nom s'il vous plaît ?
0
Un nom de quoi ? Dans ce cas précis, je parle de Chrome que j'utilise, il a une console intégrée (F12 + onglet "console" ) et je suppose que les autres, Firefox et IE en ont aussi
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
24 janv. 2014 à 21:47
ah je croyais qu'il y avait un site.
Et ils m'affichaient comme erreur seulement une fonction dépréciée de jquery
0