11540 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous,

Je rencontre un problème lors que je vérifie si un pseudo est deja pris ou pas

$(function()
					{
						$('#new_pseudo').keyup(function()
						{

							pseudo= $('#new_pseudo').val();

							$.ajax({
								type:"POST",
								url:"verif.php",
								data:'pseudo=' + pseudo,
								success:function(data)
								{
									if(data == 1)
									{
										$('#new_pseudo').next('#erreur').fadeIn().text('Ce pseudo est déja prix');

									}
									else
									{
										$('#erreur').next('#ok').fadeIn().text('ce pseudo est libre');
									}
								}


							});
						});
					});




tout marche sauf au if, rien ne s'affiche lorsque que je tape un pseudo

j'ai tout vérifier dans le html et php et je vois rien qui cloche Smiley ohwell

voici le php au cas où :

<?php
include('include/connexion.php');

				if(isset($_POST['new_pseudo']) && ($_POST['new_mdp']) && ($_POST['new_mdp2']) && ($_POST['new_mail']))
				{
					$new_mdp = $_POST['new_mdp'];
					$new_mdp2 = $_POST['new_mdp2'];

					$req=$bdd->prepare("SELECT pseudo FROM utilisateur WHERE pseudo = [langue]seudo ") or die (print_r($bdd->errorInfo()));
					$req->execute(array('pseudo' => $_POST['new_pseudo']));

						if($req->fetch() > 0)
						{	
								
							
								echo "1";
								

						}
						else
						{
							if($new_mdp == $new_mdp2)
								{
									$req2=$bdd->prepare("INSERT INTO utilisateur(pseudo,mail,mdp) VALUES(:pseudo,:mail,:mdp) ") or die (print_r($bdd->errorInfo()));
									$req2->execute(array('pseudo' => $_POST['new_pseudo'], 'mail' => $_POST['new_mail'], 'mdp' => $new_mdp));

									echo"0";
									
									
								}
								else
								{
									echo'<span class="erreur">les deux mot de passe ne correspondent pas</span>';

								}
						}

			}
			?>






Merci de votre aide Smiley smile
Modifié par finbux (21 Jan 2013 - 21:58)
Salut,

Je passerais plutôt les data comme ceci :
data: {pseudo: pseudo}

A noter que ta fonction php vérifie la présence de $_POST['new_pseudo'], $_POST['new_mdp'], $_POST['new_mdp2'], $_POST['new_mail'] et que ta fonction JS n'envoie que $_POST['pseudo']... Smiley ohwell

tm
j'ai changer le data et enlever les $_POST['new_mdp2'] et $_POST['new_mail'] mais ca ne change rien du tout Smiley sweatdrop
Re,

Difficile sans voir le code...
Voici une base qui fonctionne, j'espère que ça pourra t'aider !

(function($) {
  $('#pseudo').keyup(function() {

    pseudo = $('#pseudo').val();

    $.ajax({
      type: "POST",
      url: "verif.php",
      data: {pseudo: pseudo},
      success: function(data) {
        console.log(data);
        if(data == "1") {
          console.log(pseudo + ' : Ce pseudo est déja prix');
        }
        else
        {
          console.log(pseudo + ' : ce pseudo est libre');
        }
      }
    });
  });
})(jQuery);

<?php
  $pseudoList = array("toto", "tata", "tutu");

  if(isset($_POST['pseudo'])) {

    if (in_array($_POST['pseudo'], $pseudoList)) {
      echo "1";
    }
    else
    {
      echo "0";
    }
  }
?>

tm
j'ai refais un code simple et rien marche Oo

<form action="verif.php" method="post">
			<label for="name">Pseudo</label>
			<input type="text" id="name" name="name" /> <br>	
			<span id="erreur" />
			<span id="ok" />	

<input type="submit" value="envoyer" id="envoie" />



if(isset($_POST['name']))
{
  $pseudo = $_POST['name'];

  $req= mysql_query("SELECT name FROM user WHERE name = '$pseudo' ") or die (mysql_error());

    if(mysql_num_rows($req)>0){
      echo"1";
    }
    else{
      echo"0";
    }
}






 $(function()
					{

						$('#name').keyup(function()
						{

							var pseudo= $('#name').val();

							$.ajax({
								type:"POST",
								url:"verif.php",
								data: {pseudo: pseudo},
								success:function(data)
								{
									if(data == 1)
									{
										$('#name').next('#erreur').fadeIn().text('Ce pseudo est déja prix');

									}
									else
									{
										$('#erreur').next('#ok').fadeIn().text('ce pseudo est libre');
									}
								}


							});
						});
					});
Re,

C'est normal, lorsque tu exécutes ta requête ajax tu lui passes data: {pseudo: ... }.
Ton php doit donc récupérer $_POST["pseudo"].

Et si tu veux récupérer $_POST["name"], tu dois envoyer data: {name: ... }. Smiley rolleyes

tm