Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript][jquery] Zasięg zmiennych z wywołania $.ajax
Forum PHP.pl > Forum > Przedszkole
grzeee
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. });
nospor
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
grzeee
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ść wink.gif Plis pomóżcie ...
nospor
Napisałem: ajax wykonuje się asynchronicznie. Masz dwie drogi:
odpalaj go synchronicznie - poczytaj jak
lub pomyśl jak obejść drogę z asynchronicznością smile.gif
grzeee
No i odpaliłem go synchronicznie - cokolwiek to znaczy, wychodzi nie znajomość XMLHttpRequest, a najzabawniejsze jest to że się tyle z tego korzysta wink.gif
Wystarczyło dodać async: false i odrazu wszystko działa jak należy

Dzięki wielkie.
Crozin
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.
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.