• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak przypisac jsona do tablicy globalnej w javascript

Object Storage Arubacloud
0 głosów
125 wizyt
pytanie zadane 11 lutego 2017 w JavaScript przez michal Mądrala (5,560 p.)

Cześć, mam pytanko ponieważ odbieram z php za pomocą ajax pewne dane i chce przypisać je do tablicy która będzie dostępna w innych funkcjach i nie wiem w czym tu jest problem. 

var zdjecia = new Array;


function m_openGallery(id, path)
{	
	$.ajax({
		type: "POST",
		url: './inc/php/m_gallery.php',
		
		data: {kategoria: id},
		dataType: 'json',
		success: function(result){

			var ile = result.length;
			for (i=0; i<ile; i++)
			{
				zdjecia[i] = result[i];
			}

		}
	});
	
	console.log(zdjecia);

	
}

Console.log zwaraca mi undefined. Spodkal sie ktos z podobnym przypadkiem? 

Dodam jeszcze ze jeśli w funkcji succes podam console.log(result) to zwraca mi ładnie tablice z elementami, ale ja chce ją wykorzystć i innej funkcji, dlatego próbuje przypisać do tablicy globalnej.

1 odpowiedź

0 głosów
odpowiedź 11 lutego 2017 przez Magicone Nałogowiec (45,100 p.)

Zwraca undefined, bo przypisanie zawartości odpowiedzi zapytania odbywa się asynchronicznie, tj. callback wywoływany jest w momencie uzyskania odpowiedzi. Umieść ten log bezpośrednio po pętli for, którą z kolei możesz skrócić do:

zdjecia = result;

komentarz 11 lutego 2017 przez michal Mądrala (5,560 p.)
No tak bezpośrednio po pętli działa, ale czy będę mógł się do tej tablicy w innych funkcjach odwołać w ten sposób -> zdjęcia[1]  ?
komentarz 11 lutego 2017 przez kubaapk Nałogowiec (44,270 p.)
Pushuj w pętli dane do tablicy.
komentarz 13 lutego 2017 przez Magicone Nałogowiec (45,100 p.)
Funkcja którą przekazujesz w success jest wykonywana dopiero wtedy, kiedy zapytanie HTTP zwróci swoją odpowiedź, jeśli chcesz przekazać dane innej funkcji to zrób to właśnie w tej funkcji.

Podobne pytania

0 głosów
1 odpowiedź 131 wizyt
pytanie zadane 23 maja 2022 w Java przez blofeld Użytkownik (700 p.)
0 głosów
1 odpowiedź 755 wizyt
pytanie zadane 8 lutego 2017 w C# przez Zychu Użytkownik (710 p.)
0 głosów
2 odpowiedzi 199 wizyt
pytanie zadane 17 sierpnia 2021 w Rozwój zawodowy, nauka, praca przez s85 Nowicjusz (200 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...