Ho scritto una funzione, che deve controllare se un nome utente è stato preso o meno. Ora quando chiamo la funzione da un'altra funzione e avviso il suo valore di ritorno:Restituzione della risposta da una chiamata Jquery AJAX
alert(checkusernameavailable('justausername'));
dice "non definito". Ho cercato in alto e in basso, ma non riesco a trovare quello che sto facendo male. Suppongo che dovrebbe solo restituire php-echo in check.php, ma non è così. Ecco la funzione che ho scritto:
var checkusernameavailable = function(value) { $.ajax({ url: "check.php", type: "POST", async: false, cache: false, data: "username=" + value + "", success: function(response) { alert(response); return response; }, error: function() { alert('ajax error'); } }); }
Cosa sto facendo male?
Grazie per la risposta, lo capisco. Ma non risolve il mio problema. Lascia che ti spieghi cosa voglio un po 'oltre. Sto sparando la funzione checkusernameavailable dall'interno di un'altra funzione, che si attiva quando viene inoltrata la mia forma. Quindi quello che sto facendo è: if (! Checkusernameavailable (username_box.val())) { return false; // non inviare il modulo // e rendere rosso alcune caselle, nascondendo i messaggi di errore multilingue (che - btw - significa che non posso inserire la risposta direttamente nel mio html ...) } –
@ user468893 - Vedere il mio modificare. È necessario rendere sincrona la chiamata Async AJAX. – GenericTypeTea
Lo era già, ma quello non era il trucco :) Il valore di ritorno ha fatto la magia. Grazie! –