Utilizzare jQuery validationre il plugin con l'opzione "remoto"

Sto utilizzando il jQuery validationre il plugin e la sua opzione remota per controllare l'esistenza di un nome utente da un field di input. Uso questo codice:

remote : { url :'ajax_php/admin/checking.php', type :'post', data : { type:'username' }} 

Ho notato che l'URL di richiesta ha un parametro di richiamata allegato, anche se ho impostato la richiesta di tipo da post :

 http://localhost/lopoli2/ajax_php/admin/checking.php?callback=jQuery15104128487491980195_1311232389069 

Il mio script PHP funziona bene e restituisce true per il nome utente valido e una string per i nomi utente non validi. Ma non compare alcun messaggio di errore! Il mio file PHP in breve sembra questo:

 $check = mysql_query("select `username` from `user_tbl` where `username`='".$_POST['username']."' ",$conn) or die('Error In DB !'); if (mysql_num_rows($check)>0){ echo("username is already exists"); }else{ echo("true"); } 

Ecco cosa voglio sapere:

  • Qual è il parametro di richiamata?
  • Come risolvere il problema di "messaggio di errore di visualizzazione"?

Prova a cambiare:

 echo("username is already exists"); 

a

 echo("false"); 

Penso che dovrai tornare vera o falsa nel tuo script php. Quindi è ansible impostare il messaggio di errore utilizzando un messaggio di errore personalizzato utilizzando il parametro messaggi nell'object opzioni.

Inoltre penso che i parametri dei tuoi dati siano configurati in modo sbagliato. Sembra così nei documenti. Anche se, la menzionate funziona, forse versione diversa? (http://docs.jquery.com/Plugins/Validation/Methods/remote#options)

 remote: { url: 'ajax_php/admin/checking.php',, type: "post", data: { username: function() { return $("#username").val(); } } } 

Poi nel tuo script php restituire 'true' o 'false'. È ansible impostare il messaggio di errore utilizzando il plugin di validation jquery

 $check = mysql_query("select `username` from `user_tbl` where `username`='".$_POST['username']."' ",$conn) or die('Error In DB !'); if (mysql_num_rows($check)>0){ echo 'false'; }else{ echo "true"; } 

Ecco come aggiungi un parametro di messaggio (http://docs.jquery.com/Plugins/Validation/validate#options)

 $(".selector").validate({ rules: yourRules, messages: { username: { remote: "Username already exists" } } }) 

Il valore restituito è considerato come un boolean (true / false) o una string (verrà trattato come falso e visualizzerà il text restituito).

Inoltre, è importnte impostare l'output su text / javascript o su text / pianura utilizzando l'intestazione ('content-type: text / plain');

Quindi, in php, quando si restituisce il valore, si dovrebbe prestare attenzione al tipo di valore restituito come segue:

echo 'true'; // => true, un boolean. Dice che il risultato della validation è vera e tutto va bene.

eco 'falso'; // => false, un boolean. Dice che il risultato della validation è errato e visualizza un messaggio configurato nell'object validatore

echo '' falso ''; // => "falso", una string. Dice che il risultato della validation è errato e visualizzare la string restituita verrà visualizzata come un errore.