AJAX JQuery problème IF

Résolu
tete0148 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   -  
tete0148 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   126
 
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   Statut Membre Dernière intervention   89
 
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   Statut Membre Dernière intervention   126
 
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   Statut Membre Dernière intervention   89
 
J'irai voir, je suis en cours là. merci de votre réponse
0
tete0148 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   89
 
Non tout est en sans UTF 8 sans bom
0
Utilisateur anonyme
 
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
 
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   Statut Membre Dernière intervention   89
 
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
 
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   Statut Membre Dernière intervention   89
 
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
 
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   Statut Membre Dernière intervention   89
 
http://puu.sh/6wF2S.png
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   89
 
$(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
Utilisateur anonyme
 
Tu as vraiment :
    {
    pseudo : pseudo,
    password : password,
    mail : mail
    }

Dans ton code ?
Les variables pseudo, password et mail sont-elles définies ?
0
Utilisateur anonyme
 
Et les virgules entre pseudo, password et mail ont disparu ?
0
tete0148 Messages postés 413 Date d'inscription   Statut Membre Dernière intervention   89
 
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
Utilisateur anonyme
 
{
  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   Statut Membre Dernière intervention   89
 
Merci tout fonctionne grâce à vous.
Je vous suis reconnaissant !!!
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   89
 
Puis-je avoir un nom s'il vous plaît ?
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   89
 
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