Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] Odpowiedz z Ajaxa do zmiennej JS, jak przekazac?
Nookie
post
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 15.09.2003

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


Witam

blad na pewno jest trywialny ale Javascript niestety nie jest moja mocna strona (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

mam funkcje (pluje ja z php dlatego jest \")

  1. function GetSelectedRecords(array_element)
  2. {
  3. var db_selected_records;
  4.  
  5. advAJAX.post(
  6. {
  7.  
  8. url: \"users.php\",
  9. timeout : 5000,
  10. onTimeout : function() { alert(\"Connection timed out..\"); },
  11. retry: 2,
  12.  
  13. parameters : {
  14. \"action\" : \"8\",
  15. \"id\" : \"1\"
  16. },
  17.  
  18. onSuccess : function(obj) { db_selected_records=obj.responseText; alert(\"Odpowiedz: \" + obj.responseText); },
  19. onError : function(obj) { alert(\"Error: \" + obj.status); }
  20.  
  21. });
  22.  
  23. alert(db_selected_records);
  24.  
  25. }



Ajax laczy sie poprawnie oraz uzyskuje odpowiedz bo ja ladnie wyswietla.. poprzez alert(\"Odpowiedz...
niestety gdy probuje wyswietlic zmienna db_selected_records jest pusta..

moze mi ktos podpowiedziec jak to powinno wygladac (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

z gory thx
pozdrawiam!

Ten post edytował Nookie 8.06.2006, 19:17:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
anopak
post
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 26.10.2004
Skąd: Rybnik

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


ajax jest wykonywany asynchronicznie, czyli w czasie gdy jest wykonywany ajax, JS dalej jest wykonywany.... musiałbyś wykonać ajaxa synchronicznie, aby w ta zmienna była poprawnie wyświetlona po zakończeniu AJAX'a
Go to the top of the page
+Quote Post
Nookie
post
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 15.09.2003

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


Cytat(Nookie @ 8.06.2006, 20:15 ) *
Witam

blad na pewno jest trywialny ale Javascript niestety nie jest moja mocna strona (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

mam funkcje (pluje ja z php dlatego jest \")

  1. function GetSelectedRecords(array_element)
  2. {
  3. var db_selected_records;
  4.  
  5. advAJAX.post(
  6. {
  7.  
  8. url: \"users.php\",
  9. timeout : 5000,
  10. onTimeout : function() { alert(\"Connection timed out..\"); },
  11. retry: 2,
  12.  
  13. parameters : {
  14. \"action\" : \"8\",
  15. \"id\" : \"1\"
  16. },
  17.  
  18. onSuccess : function(obj) { db_selected_records=obj.responseText; alert(\"Odpowiedz: \" + obj.responseText); },
  19. onError : function(obj) { alert(\"Error: \" + obj.status); }
  20.  
  21. });
  22.  
  23. alert(db_selected_records);
  24.  
  25. }

Ajax laczy sie poprawnie oraz uzyskuje odpowiedz bo ja ladnie wyswietla.. poprzez alert(\"Odpowiedz...
niestety gdy probuje wyswietlic zmienna db_selected_records jest pusta..

moze mi ktos podpowiedziec jak to powinno wygladac (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

z gory thx
pozdrawiam!



OK, ale jak powiedzmy wykonam funkcje i jej przekaze parametr obj.responseText
kotry bedzie zwieral to co chcialem miec w db_selected_records to powinno dzialac?

czyli wtedy ta linijka powinna wygladac cos ala


  1. onSuccess : function(obj) { setRecods(obj.responseText); alert(\"Odpowiedz: \" + obj.responseText); },
Go to the top of the page
+Quote Post
anAKiN
post
Post #4





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 15.07.2003

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


onFinalization daje ci dostep w czasie, kiedy zadanie AJAX-a sie zakonczylo, takze:
Kod
onFinalization: function() { alert(db_selected_records); }
Go to the top of the page
+Quote Post
mariuszn3
post
Post #5





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

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


Nie chodzi przypadkiem o to, że db_selected_records masz zadeklarowane wewnątrz funkcji GetSelectedRecords() a następnie próbujesz się odwołać do zmiennej poza nią (?).. wtedy ze zrozumiałych względów zmienna będzie zwracać wartośc undefined.
Jeśli chcesz aby zmienna była widziana globalnie tak ją zadeklaruj, nie mniej myślę, że w ogóle powinieneś to inaczej rozwiązać, pomaganie sobie zmiennymi globalnymi zazwyczaj jest kiepskim pomysłem.
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.08.2025 - 18:46