Voglio verificare se il nome utente esiste nel database utilizzando jQuery.Validate, ecco cosa ho finora:
jQuery:
$("#signupForm").validate({
rules: {
username: {
required: true,
minlength: 3,
remote: "check-username.php"
}
},
messages: {
username:{
remote: "This username is already taken! Try another."
}
}
});
check-username.php:
<?php
require_once "./source/includes/data.php";
header("Content-type: application/json");
$name = mysql_real_escape_string($_POST["username"]);
$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username="$name"");
if (mysql_num_rows($check_for_username) > 0) {
$output = true;
} else {
$output = false;
}
echo json_encode($output);
?>
Questo codice mostra sempre un errore che il nome utente viene preso anche se non lo è.
Sto usando jQuery Mobile 1.9.1
Grazie in anticipo.
risposte:
6 per risposta № 1Sono riuscito a farlo funzionare cambiando la tecnica PHP che stavo usando, ecco il mio PHP:
<?php
require_once "./source/includes/data.php";
header("Content-type: application/json");
$request = $_REQUEST["username"];
$query = mysql_query("SELECT * FROM mmh_user_info WHERE username ="$username"");
$result = mysql_num_rows($query);
if ($result == 0){
$valid = "true";}
else{
$valid = "false";
}
echo $valid;
?>
Grazie a tutti qui per il vostro aiuto :)
2 per risposta № 2
Ho due risorse da guardare.
Esempio ufficiale dal plugin di convalida: http://jquery.bassistance.de/validate/demo/milk/
Soluzione del forum jQuery: http://forum.jquery.com/topic/jquery-validation-plugin-remote-validation-problem-locks-up
La possibile soluzione è che la risposta lo facciaNon ho bisogno di essere json codificato per quanto posso dire. Dal momento che JSON ha bisogno di coppie chiave di valore, la supposizione del valore non funziona, quindi cerca di farlo eco come stringhe "vere" o "false".
In secondo luogo, la convalida utilizza GET per il metodo di invio del modulo, non per il POST.
NOTA: SOLO TROVATO POSSIBILE DOMANDA DI SOLUZIONE validazione remota jQuery