Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][AJAX] kolejność
Forum PHP.pl > Forum > XML, AJAX
BCZK
Witam, mam problem (chyba) z kolejnością wywoływania funkcji przy sprawdzaniu dostępności nicku na żywo...

O ile sam skrypt obsługujący poprawnie zwraca wartość...
  1. function AJAX_NICK_ISFREE(nick){
  2. $.ajax({
  3. url: PATH_AJAX+"checknick.php?nick="+nick,
  4. complete: function(html){
  5. if (html.responseText == 'ok'){
  6. return true;
  7. } else {
  8. return false;
  9. }
  10. }
  11. });
  12. }


To w wywołaniu funkcji wartość zwracana z funkcji zawsze jest undefined...

ten skrypt zawsze wypisuje "zajety"...
  1. function js_validnewnick(nick){
  2. if (AJAX_NICK_ISFREE(nick)){ //tutaj wydaje mi sie, ze funkcja zwraca wartosc zanim ja obliczy, zanim ja dostanie z powrotem od skryptu php
  3. $('body').text('wolny');
  4. } else {
  5. $('body').text('zajety');
  6. }
  7. }
vokiel
A nie możesz tego połączyć?
[JAVASCRIPT] pobierz, plaintext
  1. function AJAX_NICK_ISFREE(nick){
  2. $.ajax({
  3. url: PATH_AJAX+"checknick.php?nick="+nick,
  4. complete: function(html){
  5. if (html.responseText == 'ok'){
  6. $('body').text('wolny');
  7. return true;
  8. } else {
  9. $('body').text('zajety');
  10. return false;
  11. }
  12. }
  13. });
  14. }
[JAVASCRIPT] pobierz, plaintext
BCZK
Właśnie wolałbym nie łączyć ... o ile się da uprościłoby mi to kawałek życia smile.gif
erix
Już pisałem o tym wczoraj w którymś wątku: nie da się pobrać wartości zwracanej przez callbacki w takim kontekście. Więc jakiekolwiek return w nich umieszczone umożliwi tylko przerwanie funkcji i nic poza tym.

Pisałem też o rozwiązaniu pośrednim, jakim jest uaktywnienie synchronicznego żądania, pseudokod:
[JAVASCRIPT] pobierz, plaintext
  1. function sprawdz(){
  2.  
  3. status = false;
  4.  
  5. $.ajax...
  6. - synchroniczny
  7. - jako success:
  8. function(data){ status = (data=='ok'); }
  9.  
  10. return status;
  11. }
[JAVASCRIPT] pobierz, plaintext
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.