AJAX JQuery problème IF

Résolu
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:
$(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

  1. 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
    1. Utilisateur anonyme
       
      La page traitement.php retourne, j'ai tout mis en commentaire pour la bdd :
      <?php
      echo 'pseudoExist';
      ?>
      
      0
    2. 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
    3. Utilisateur anonyme
       
      J'irai voir, je suis en cours là. merci de votre réponse
      0
    4. Utilisateur anonyme
       
      Non tout est en sans UTF 8 sans bom
      0
  2. 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
  3. 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
    1. Utilisateur anonyme
       
      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
    2. 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
    3. Utilisateur anonyme
       
      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
    4. 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
    5. Utilisateur anonyme
       
      http://puu.sh/6wF2S.png
      0
  4. Utilisateur anonyme
     
    Tu ne pourrais pas le coller en texte ? Un copier-coller d'image, ça ne donne pas grand-chose
    0
    1. Utilisateur anonyme
       
      $(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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. Utilisateur anonyme
       
      Et les virgules entre pseudo, password et mail ont disparu ?
      0
    2. Utilisateur anonyme
       
      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
  7. 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
    1. Utilisateur anonyme
       
      Merci tout fonctionne grâce à vous.
      Je vous suis reconnaissant !!!
      0
    2. 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
    3. Utilisateur anonyme
       
      Puis-je avoir un nom s'il vous plaît ?
      0
    4. 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
    5. Utilisateur anonyme
       
      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