Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [javascript][jquery] Zasięg zmiennych z wywołania $.ajax
grzeee
post 8.05.2012, 14:51:58
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. });


--------------------
Polecam Jastrzębia Góra, serwis o nadmorskiej miejscowości.
Go to the top of the page
+Quote Post
nospor
post 8.05.2012, 15:35:10
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
grzeee
post 9.05.2012, 09:32:30
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ść wink.gif Plis pomóżcie ...


--------------------
Polecam Jastrzębia Góra, serwis o nadmorskiej miejscowości.
Go to the top of the page
+Quote Post
nospor
post 9.05.2012, 10:52:02
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ą smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
grzeee
post 9.05.2012, 12:57:45
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 wink.gif
Wystarczyło dodać async: false i odrazu wszystko działa jak należy

Dzięki wielkie.


--------------------
Polecam Jastrzębia Góra, serwis o nadmorskiej miejscowości.
Go to the top of the page
+Quote Post
Crozin
post 9.05.2012, 14:02:31
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.06.2025 - 19:29