Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ajax] Odpowiedz z Ajaxa do zmiennej JS, jak przekazac?
Nookie
post 8.06.2006, 19:15:58
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 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 questionmark.gif 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
anopak
post 8.06.2006, 19:35:16
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


--------------------
Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox
Go to the top of the page
+Quote Post
Nookie
post 8.06.2006, 19:43:57
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 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 questionmark.gif 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 12.06.2006, 16:56:08
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); }


--------------------
Łukasz Lach
http://anakin.us/
Go to the top of the page
+Quote Post
mariuszn3
post 13.06.2006, 12:38:14
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:39