jquery - forme ajax base de données vérifier la valeur unique
à l'aide de
- jquery plugin validator
- jquery
tenter:
- assurez-vous un nom d'utilisateur n'existe pas dans la base de données
- ont une forme + un terrain de + télécommande vérifiez
- je veux vérifier à l'aide de jquery ajax si elle existe.
ce qui fonctionne:
- check-username.php fonctionne par lui-même
ce qui n'est pas
- forme ne semble pas être en mesure de passer à retourner une valeur booléenne pour valider la distance jquery validation
- comment puis-je obtenir pour passer la valeur de sorte que le champ peut être validé?
HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js" type="text/javascript"></script>
<script language="javascript" src="validate.js"></script>
<meta name="generator" content="" />
<style type="text/css"></style>
</head>
<body>
<form action="/" method="post" id="register-form">
<div>
<label for="username">Username<font color="red">*</font>:</label>
<input type="text" name="username" size="20" id="username" />
</div>
<div>
<input type="submit" name="submit" value="submit" />
</div>
</form>
</body>
</html>
JQUERY Valider
$().ready(function() {
//validate signup form on keyup and submit
$("#register-form").validate({
rules: {
username: {
required: true,
remote: "check-username.php"
},
},
messages: {
username:{
remote: "This username is already taken! Try another."
},
},
});
});
Check-USERNAME.php
<?php
$searchVal = $_POST['username'];
try {
$dbh = new PDO("mysql:host=$hostname;dbname=$data", $username, $password);
$sql = "SELECT * FROM users WHERE USERNAME = " . "'" . $searchVal . "'";
$stmt = $dbh->query($sql);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if($result>0){
return true;
}else {
return false;
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
- déplacer
$dbh = null;
quelques lignes vers le haut. - essayé, mais le terrain ne vérifie pas la db en double, la valeur saisie.
- Qui n'est pas connecté avec votre problème, mais il vaut mieux le débrancher avant de
return
. Btw, je suis l'aide de ceci - code très simple pour vérifier les noms utilisés, etc. - j'ai regardé ça, mais de ne pas voir un exemple clair et je me demandais est-il un moyen plus simple de le faire depuis le poste a été en 2009.
- N'avez pas l'esprit de l'année, il fonctionne assez bien. Voir ma réponse en bas.
- vérifiez ce post pour répondre à [Jquery-validator-vérifier-pour-existant-nom d'utilisateur][1] [1]: stackoverflow.com/questions/19539115/...
Vous devez vous connecter pour publier un commentaire.
Afin de valider la valeur à côté serveur, vous devez ajouter une nouvelle Validation de la Méthode.
Comme indiqué ci-dessus, la méthode checkUserName permettra de vérifier à côté serveur et donner le message d'erreur "Ce nom d'utilisateur est déjà pris! Essayez-en un autre." si le nom d'utilisateur n'est pas exister.
Pour plus d'informations et d'exemples sur jQuery Validation et de sa méthode : cliquez ici.
Espérons que cette aide.
N'ai pas de vérifier le reste de votre code, mais essayez ceci:
?>
C'est une solution à l'aide d'un module différent de ici.
Pour vérifier la disponibilité d'un nom à l'aide des appels Ajax rendre suivantes:
Après le téléchargement de fixer
jquery.validationEngine.js
et vos paramètres régionaux:Remarque, que
en
locale est également obligatoire pour être inclus.D'ouvrir et de modifier votre fichier de langue, vous devez montrer où est votre
php
fichier qui va vérifier la base de données pour la disponibilité d'un nom ou d'utilisation de nom de fichier par défaut. Donc, trouver les lignes suivantes dansjquery.validationEngine-en.js
dans le cas où vous utilisez l'anglais.Ici vous pouvez changer le nom du fichier si vous voulez:
Et votre
my-file_which_will_check_db.php
devrait ressembler à:Enfin, votre balisage HTML devrait ressembler à:
Note supplémentaire
class
attribut ici.Et comprennent script suivant: