Salut à tous,
J'ai un problème avec mon script .
Je m'explique en fait je fait une recherche de pseudo dans ma base de donnée en ajax. Et le php doit me renvoyer 1 si le pseudo existe et 0 s'il il est libre mais j'ai un problème il me renvoi toujour 0 et je ne vois pas ou est mon erreur...
Voici le code JS:

$(function()
{
    $('#pseudo').keypress(function()
        {
        pseudo = $('#pseudo').val();        
        $.ajax({
            type: "POST",
            url:"inscris.php",
            dataType : "json",
            data: 'pseudo=' + pseudo,
            success:function(data)
            {
                alert(pseudo+' '+result);
                if(data == 1)
                {
                    $('#pseudo').next('.error_inscriptions').fadeIn().text("Valide");
                }
                else
                {
                    $('#pseudo').next('.error_inscriptions1').fadeIn().text("Ce pseudo et deja utiliser");
                }
            }
        });
    });     
});

Et la le code Php:

<?php
    require "../../config.php";
extract($_POST);
$pseudo = $_POST'pseudo'];
$test="SELECT pseudo FROM membres WHERE pseudo = '$pseudo'";
$testreq=mysql_query($test) or die (mysql_error());
if(mysql_num_rows($testreq)>0)
{
        $result = $testreq'pseudo'];
        echo json_encode($result);

}
else
{
    echo "0";
}

Merci !!

4 réponses


djtec
Réponse acceptée

Deja ça c'est faux:

$result = $testreq'pseudo'];

Tu fais pas de mysql_fetch_array ou object nul par donc il peut pas te retourner une valeur

Ensuite dans ton js:

alert(pseudo+' '+result);

result vient d'où? Car y a rien non plus et fait plutôt un alert de data pour voir ce qu'il te retourne

djtec
Réponse acceptée

Si tu veux que ça envoie la requête des que tu quitte le champ utilise blur() plutôt que keypress() car blur fonctionne des que le champ perd le focus et keypress fonctionne quand tu appuis sur la touche

workfel
Auteur

Sa marche ;)
Mais je comprend pas pourquoi quand j'ai taper le nom(qui existe dans la BDD)il faut que je fasse soit un espace soit une tabulations pour que je reçoive la requête.
Si par contre je tape le nom qui existe déjà et que je clique sur un autre champ input la requête n'est pas reçu et crois que la valeur du champ n'existe pas ...

J'ai donc fait un mouseover sur la div mais c'est dégueulasse ...

Quelqu'un saurait comment faire ?!

merci

workfel
Auteur

Merci ;)