2009-12-29 8 views
0

J'ai une forme jquery ajax. J'ai une validation côté serveur pour le nom d'utilisateur et l'adresse e-mail répétés. qui fonctionne bien sans jquery/ajax.validation php en utilisant jquery et ajax

dans mon code php j'ai utilisé die() pour retourner si une erreur se produit. mon principal problème est à ajax

est ici le code

$(document).ready(function() { 

    $("form#regist").submit(function() { 
     var str = $("#regist").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "submit1.php", 
      data: $("#regist").serialize(), 
      success: function() { 

       $("#loading").append("<h2>you are here</h2>"); 

      } 

     }); 
     return false; 


    }); 
}); 

La fonction de succès fonctionne correctement. si mes données sont valides, elles sont ajoutées dans la base de données, si mes données sont répétées, elles ne sont pas ajoutées dans la base de données. Maintenant, ce que je veux savoir, c'est comment puis-je retourner l'erreur de mon fichier php et l'utiliser lors d'un événement de succès. Merci d'avance ..

edit: voici comment mon script php ressemble

$query = "SELECT username from userdetails WHERE username = '$username'"; 
$q = mysql_query($query) or die("error" . mysql_error()); 
$numrows = mysql_num_rows($q); 
if($numrows > 0) 
{ 
die("username already exixt"); 
//should i put something like this 
//$error = "username already exists"; 
//return $error; --->> i am not sure about this.. 
} 

merci à l'avance

Répondre

2

côté Php:

if($numrows > 0) 
{ 
echo "username already exist"; 
} 

côté Javascript:

success: function(msg) 
    { 
    if(msg == 'username already exist') alert(msg); 
    } 

Mais cela est si brut, si vous envisagez de développer cet autre essayer de lire quelques articles sur JSON, de sorte que vous pouvez utiliser JSON communiquer avec le serveur. Et aussi, vous devriez essayer d'utiliser une erreur par défaut de contrôle, comme retourne un tableau avec php:

echo json_encode(array('error' => true, 'notice' => 'username exists')); 

Puis sur le côté javascript (jquery), l'utilisation JSON demande ajax et toujours vérifier si la variable d'erreur est vrai ou non, Si c'est peut-être vous pouvez utiliser une fonction par défaut pour le contrôle des erreurs.

J'espère que cela a aidé.

+0

merci cela a aidé..également je pense que je devrais regarder plus profondément dans json..thanks – noobcode

0
$(document).ready(function() { 

    $("form#regist").submit(function() { 
     var str = $("#regist").serialize(); 
     $.ajax({ 
      type: "POST", 
      url: "submit1.php", 
      data: $("#regist").serialize(), 
      success: function (msg) { 
       alert(msg); 
      } 

     }); 
     return false; 

    }); 
}); 

Ici du côté serveur envoie le message et le montrer, comment je l'ai montré :)

0

Dans la définition de fonction que vous avez fait comme: success: function() { introduire un paramètre comme: succès: funct ion (retVal) {

Maintenant, dans la fonction, vous pouvez vérifier la valeur de retVal. Dites, vous revenez de votre script PHP, "succès" pour succès cas et "cet email existe" pour l'échec. Maintenant, vous pouvez directement comparer ici et faire ce que vous voulez, comme:

if (retVal == « cet email existe ») { window.alert ('s'il vous plaît ré-entrer dans l'e-mail, ce disque existe ! '); }

et ainsi de suite ... Espérons que cela aide.

+0

pardonnez mon ignorance. comment puis-je revenir de script PHP. Ma conjecture: Si je l'ai dit $ retval = enregistrer db si la valeur existe; if ($ retval) { return $ retval; } voulez-vous dire que je devrais avoir un tel code dans mon script PHP. merci pour votre réponse et je suis vraiment désolé pour une telle question n00b. merci – noobcode