/ / jQuery Convalida l'utilizzo del metodo remoto per verificare se il nome utente esiste già - php, jquery, mysql, jquery-validate, username

jQuery Convalida l'utilizzo del metodo remoto per verificare se il nome utente esiste già - php, jquery, mysql, jquery-validate, username

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 № 1

Sono 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