Moi
jQueryllä haen JSONia, jonka haluaisin tallentaa muuttujaan.
getJSON kutsussa määritellään success funktio, jossa yritän asettaa datan aiemmin alustamaani muuttujaan esim. db.
Sama missä kohtaa alustan tuon db muuttujan, niin se on aina undefined, kun yritän tulostaa sitä esim. konsoliin.
Eikö nuo ennen getJSONia alustetut muuttujat pitäisi olla saatavilla tuolla success funktiossa?
$(document).ready(function(){ var db,query; $.getJSON('url', function (data){ db = data; }); console.log(db); //undefined
Taas ymmärrä, että mikä on niin vaikiaa näin yksinkertaisessa asiassa...
Tuossa tapahtuu seuraavaa:
1) Määrittelet muuttujan db
2) Teet sivupyynnön jonka valmistuessa määrittelet ajettavaksi funktion
3) Tulostat muuttujan db sisällön
4) Sivunlataus valmistuu ja funktiosi ajetaan -> data sijoitetaan muuttujaan db
Eli on aivan luonnollista, että db on tyhjä tuossa vaiheessa kun sen tulostat.
Kiitti! Ihan oikeasti :)
Nyt sain pelittämään ja vieläpä entistä paremmin, kun lisäsin seuraavankin kutsun suoraan successin sisälle.
Katosi siis tarve koko muuttujalle - ei tartte saastuttaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.