Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [javascript][jquery] Zasięg zmiennych z wywołania $.ajax
grzeee
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 5
Dołączył: 24.11.2006

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


Witam,
nie znam sie za bardzo na js ale próbuje wyciągną dane z json'a za pomocą metody ajax z jquery. Wszystko fajnie, dane się pobierają jednak chciałbym je wyciągną poza metode $.ajax.
Chodzi o to że to co zapisuje do tablicy test, jest tylko widoczne w $.ajax, a ja chce te dane zapisać dane żeby je użyć w innych funkcjach.
  1. var test = [];
  2.  
  3. $.ajax({
  4. url: '/index/addons?action=get_json',
  5. dataType: 'json',
  6. success: function(data) {
  7. $.each(data, function(i,item){
  8. test.push(item.date);
  9. });
  10. }
  11. });
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przy założeniu, że data zawiera poprawne dane to kod jest ok.
Pamiętaj, że ajax wywołuje się asynchronicznie, więc jeśli ty zaraz po ajax chcesz korzystać z dany w test to tych danych tam poprostu jeszcze nie ma
Go to the top of the page
+Quote Post
grzeee
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 5
Dołączył: 24.11.2006

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


A jest jakiś sposób żeby je tam przemycić ?
Jak je wywołam w funkcji przy success to są ale jak wywołam po wywołaniu całego $.ajax to jest pusto.


Podbijam temat bo jeszcze mi nikt nie odpowiedział czy jest czy nie ma takiej możliwość (IMG:style_emoticons/default/wink.gif) Plis pomóżcie ...
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Napisałem: ajax wykonuje się asynchronicznie. Masz dwie drogi:
odpalaj go synchronicznie - poczytaj jak
lub pomyśl jak obejść drogę z asynchronicznością (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
grzeee
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 5
Dołączył: 24.11.2006

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


No i odpaliłem go synchronicznie - cokolwiek to znaczy, wychodzi nie znajomość XMLHttpRequest, a najzabawniejsze jest to że się tyle z tego korzysta (IMG:style_emoticons/default/wink.gif)
Wystarczyło dodać async: false i odrazu wszystko działa jak należy

Dzięki wielkie.
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Użycie synchronicznego żądania jest bardzo, bardzo złym pomysłem w większości przypadków - w chwili obecnej żaden kod JS nie wykona Ci się w momencie wykonywania żądania, co nie miałoby miejsca w przypadku asynchronicznego wywołania żądania.
2. Po prostu kod, który masz w chwili obecnej pod $.ajax(); umieść w callbacku success.
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: 24.08.2025 - 19:57