Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem ze zwracaną wartością przez funkcję ajaxa
Matiash
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

Ostrzeżenie: (0%)
-----


Witam, mam taka funkcję js. Wszystko działa dobrze, jednak chciałbym jeśli odpowiedź zwórcona przez serwer (this.respone) != failed, to żeby cała funkcja MoveR zwracała true a w przeciwnym wypadku false. Przy takim kodzie jak poniżej zwraca undefined.

Kod
  function MoveR(name, name_min, name2, name2_min) {      
          var xmlhttp = new ajax("ajax/moveright/");
          xmlhttp.method = "GET";
          xmlhttp.onCompletion = function(){
            if (this.response != \'failed\') {
                return true;
            } else { return false; }
          };          
          xmlhttp.runAJAX("photoname=" + escape(name) + "&photoname_min=" + escape(name_min) + "&photoname2=" + escape(name2) + "&photoname2_min=" + escape(name2_min));
  }


Ten post edytował Matiash 17.10.2010, 23:49:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
flashdev
post
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Funkcja MoveR zakończy swoje działanie zanim jeszcze wynik odpowiedzi będzie znany. Dzieje się tak dlatego, że ajax działą asynchronicznie. Nie możesz uzależnić wyniku zwracanego przez tą funkcję od wyniku odpowiedzi serwera. Możesz za to przekazać tej funkcji uchwyt do funkcji którą ona ma wykonać gdy odpowiedź będzie znana.
Go to the top of the page
+Quote Post
Matiash
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 7.04.2007

Ostrzeżenie: (0%)
-----


Cytat(flashdev @ 18.10.2010, 01:08:14 ) *
Możesz za to przekazać tej funkcji uchwyt do funkcji którą ona ma wykonać gdy odpowiedź będzie znana.


czyli rozumiem, że w funkcji onCompletion mam wykonać to co chcę wykonać w innej funkcji w zależności od this.response ? Nie wiem czy dobrze zrozumiałem (IMG:style_emoticons/default/smile.gif)

Ten post edytował Matiash 18.10.2010, 09:36:19
Go to the top of the page
+Quote Post
flashdev
post
Post #4





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(Matiash @ 18.10.2010, 10:34:07 ) *
czyli rozumiem, że w funkcji onCompletion mam wykonać to co chcę wykonać w innej funkcji w zależności od this.response ? Nie wiem czy dobrze zrozumiałem (IMG:style_emoticons/default/smile.gif)


Kod
function MoveR(uchwyt) {      
// ...
          xmlhttp.onCompletion = function(){
uchwyt(parametry);
          };          
// ...
  }

MoveR(function(parametry){
alert(parametry);
});
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 04:10