| Javascript se ne izvede | ||
|---|---|---|
|
jj012345
20. okt 2015 14:06:37
Pridružen od: 16. avg 2012 82 objav 13 13 1 |
#1
Uporabljam klasičen način Ajaxa, po vnosu podatkov kličem JS funkcijo, katera pokliče PHP program. Ta generira HTML, ter vrne na ustrezen <DIV ID=xx></DIV>. Med to vrnjeno HTML kodo je tudi JS, konkretno koda za Google Chart. Problem je, da se ta koda ne izvede, torej da se graf ne nariše. Tudi če je samo alert(??); se ne izvede. Če to kodo shranim v HTML datoteko in poženem, se JS izvede (sintaksa je torej pravilna). Prosim za kak nasvet. |
|
|
LouD
20. okt 2015 14:11:45
Pridružen od: 3. feb 2012 583 objav 481 35 8 |
||
|
LouD
20. okt 2015 14:15:09
Pridružen od: 3. feb 2012 583 objav 481 35 8 |
||
|
vesterde
21. okt 2015 06:17:21
Pridružen od: 30. sep 2015 16 objav 16 1 0 |
#4
Kot je LouD napisal, callback bi bil najboljša izbira, torej da je JS že nekje naložen ves časa, ampak se izvede s podatki, ki jih dobiš od strežnika. Članek, ki ga je LouD linkal podrobneje razloži kaj narediti, če res nujno rabiš, da se tista koda iz strežnika izvede, ampak eval() ti hitro lahko prinese en kup problemov na stran in jaz bi ga uporabljal izključno, če ne gre drugače. JS koda vrinjena v stran po osnovnem nalaganju pa se seveda ne izvede, to bi bil samomor iz vidika varnosti. |
|
|
jj012345
21. okt 2015 08:32:56
Pridružen od: 16. avg 2012 82 objav 13 13 1 |
#5
Hvala obema. Poskusil sem z rešitvijo, ki je opisana na priloženem linku, vendar (za enkrat) mi ne dela. Način, da je koda (in tudi rezultat) na primarni strani, PHP pa poskrbi za podatke, mi deluje OK. Vendar v tem primeru bi želel imeti rezultat (graf) med podatki, ki jih vrne strežnik. To pomeni, da se <div id=xxx… vrne z podatki s strežnika. Rezultat je pa tak, da se graf pokaže in takoj izgine. Ne najdem zakaj izgine. Prosim za nasvet. Prva rešitev, da se na strežniku izdela tudi JS je zame precej bol enostavna in tudi brez problema deluje, če se za rezultate odpre nova stran. To je sicer za prikazovanje reklam OK, saj se pri 10 izračunih reklame prikažejo 20 krat, v nasprotnem primeru samo enkrat. Je pa za uporabnika precej manj prijazno, ko čaka na nalaganje nove strani. |
|
|
LouD
21. okt 2015 08:46:45
Pridružen od: 3. feb 2012 583 objav 481 35 8 |
||
|
jj012345
21. okt 2015 09:27:54
Pridružen od: 16. avg 2012 82 objav 13 13 1 |
#7
Ne vem kateri del kode bi bil bistveni za razjasnitev. Pri spremembi kličem goFunc() <input onchange="goFunc()" id="znes" name="znes" type="range" min=5000 max=500000 value=200000 step=1000 oninput="oznes(value)"> chart.draw(data, options); |
|
|
cruiser
21. okt 2015 09:37:35
Pridružen od: 5. mar 2010 239 objav 275 16 3 |
#8
Zakaj želiš da strežnik javlja HTML ? Npr takole:
// Senior software engineer, marketer and entrepreneur. Need help ? Let me know -> http://www.krevh.com/contact/
|
|
|
jj012345
21. okt 2015 09:59:17
Pridružen od: 16. avg 2012 82 objav 13 13 1 |
||
|
carli
21. okt 2015 10:35:35
Pridružen od: 5. avg 2008 1258 objav 583 54 17 |
#10
Če ne drugega loči klica, za content in za graf, dvomim da je zadeva tako procesno požrešna, da bi ti dodaten klic delal probleme. Ko dobiš content, poženeš še en klic za data in preko tega generiraš graf. V contentu pa lepo nastavi en loading element, ki se zamenja z grafom ko enkrat dobiš podatke. |
|
