Napisałem funkcję, która ma sprawdzić, czy nazwa użytkownika została podjęta, czy nie. Teraz, gdy wywołuję funkcję z innej funkcji i powiadamiam ją o zwracanej wartości:Zwracanie odpowiedzi z wywołania JQuery AJAX
alert(checkusernameavailable('justausername'));
oznacza "niezdefiniowany". Szukałem wysokiego i niskiego poziomu, ale nie mogę znaleźć tego, co robię źle. Myślę, że powinien po prostu zwrócić php-echo w check.php, ale tak nie jest. Oto funkcja, którą napisałem:
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'); } }); }
Co robię źle?
Dziękuję za odpowiedź, rozumiem to. Ale to nie rozwiązuje mojego problemu. Pozwól mi wyjaśnić, czego chcę nieco dalej. Wypalam funkcję checkusername dostępną z poziomu innej funkcji, która odpala, gdy mój formularz zostanie przesłany. Więc co robię to: if (! Checkusernameavailable (nazwa_użytkownika.val())) { return false; // nie przesyłaj formularza // i zaznacz pola czerwone, odkrywając wielojęzyczne komunikaty o błędach (Które - btw - oznacza, że nie mogę wstawić odpowiedzi bezpośrednio do mojego html ...) } –
@ user468893 - Zobacz moje edytować. Musisz wykonać synchroniczne wywołanie Async AJAX. – GenericTypeTea
To już było, ale to nie była sztuczka :) Wartością zwracaną była magia. Dzięki! –