| | |
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice |
Zdravim, mam taky maly problem ktory som vsak nevyriesil resp. nerozumiem preco nefunguje...
V nizsom kode je premenna "nieco" nastavena na zaciatku funkcie na "false" v strede funkcie by sa do tejto premennej "nieco" mali zapisat data z volaneho php dokumentu... na konci premennej som zapisal obsah premennej nieco do DIVka no VZDY tam vypisuje false...
Chyba by mohla byt kdekolvek no zistil som ze je prave v tom, ze vo vnutri anonymnej funkcie sa ta premenna nieco sprava ako lokalna... ak som dal priamo do tej anonymnej funkcie napisat do DIVka obsah tej premennej tak to vykonalo.
Mozno sa spytate preco to nemozem dat do vnutra tej anonymnej funkcie... ja tam vsak nechcem dat vypisanie do DIVka ale chcem aby cela tato funkcia vracala hodnotu nieco.... co sa mi podari iba ak na jej konci dam "return nieco;" no ak sa tak stane tak mi vzdy vrati false
teda ako docielit aby som z tej anonymnej funkcie vycucol hodnotu premennej nieco a pouzil ju v nadradenej funkcii ziskajData? Tu je kod:
Kód: function ziskajData(zdrojDat) { var nieco = false; var XMLHttpRequestObjekt = false; if (window.XMLHttpRequest) { XMLHttpRequestObjekt = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttpRequestObjekt = new ActiveXObject("Microsoft.XMLHTTP"); } if(XMLHttpRequestObjekt) { XMLHttpRequestObjekt.open("GET", zdrojDat); var nieco = false; XMLHttpRequestObjekt.onreadystatechange = function() { if (XMLHttpRequestObjekt.readyState == 4 && XMLHttpRequestObjekt.status == 200) { nieco = XMLHttpRequestObjekt.responseText; } // document.getElementById('profil').innerHTML = nieco; // Ak by to bolo tu tak to funguje ale ja to chcem mat dole.... } XMLHttpRequestObjekt.send(null); } document.getElementById('profil').innerHTML = nieco; // Ak je to tu tak to nefunguje }
Ako som sa docital tak v JavaScripte sa lokalne premenne oznacuju "var" no ja som to var ztamat zmazal a aj tak to nejde... vdaka za rady
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 16.05.2009 21:22 | |
|
Vymaž to druhé Kód: var nieco = false;
|
|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice | Napísal autor témy scrysurn: 16.05.2009 21:30 | |
|
jaj to som zabudol zmazat pred uverejnenim tuto... to bolo testovanie zo zufalstva
správa sa to rovnako aj bez toho...
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 17.05.2009 12:33 | |
|
Teraz sa ti síce tá premenná nastaví správne, problém je v tom, že to XMLHttpRequest volanie prebieha asynchrónne, takže v momente, keď sa pokúšaš pridávať obsah tej premennej do toho div, tá premenná obsahuje false (obsah premennej sa zmení až po tom, ako sa XMLHttpRequest ukončí).
Správne miesto na to nastavovanie obsahu div je práve to, ktoré nechceš použiť a ja netuším, čo ti na tom mieste vadí. Je možné, že sa dá nastaviť, aby to volanie bolo synchrónne (teda ak si dobre spomínam), ale to spôsobí, že sa vykonávanie javascriptu zablokuje až do chvíle, keď sa skončí načítavanie (a to nie je dobrý nápad).
|
|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice | Napísal autor témy scrysurn: 17.05.2009 16:33 | |
|
no vadí mi tam to, že ten skript má vykonávať takú vec, že načíta výsledok PHP skriptu do premennej ktorú tá funkcia ziskajData vráti... čiže namiesto
Kód: document.getElementById('profil').innerHTML = nieco; si tam predstav Kód: return nieco; Príklad: Chcem súčin čísel 8 a 4. Funkcia bude volat "script.php?prvy=8&druhy=4". V scripte PHP sa vykona Kód: $sucin = $_GET['prvy'] * $_GET['druhy']; echo $sucin;
Do premennej "nieco" si ulozim vysledok tohto volania a teda cislo 32. Na konci funkcie dam "return nieco;" a dalej tuto hodnotu mozem pouzivat v javascripte... Inak povedane nechcem vysledok tej funkcie hned niekde vypisovat do nejakeho DIVka ale dalej ho spracovavat v javascripte...
Cize tak jednoducho to podla toho asi nepojde. Skoda. Ale dik za informacie, aspon som mudrejsi, lebo tak by som este dlho nadaval kym by som to vzdal s tymto skriptom
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 17.05.2009 20:10 | |
|
Prečo by to nemalo byť jednoduché? Namiesto toho Kód: document.getElementById('profil').innerHTML = nieco; tam dáš Kód: mega_funkcia(nieco); (alebo niečo podobné) a v tej funkcii môžeš s tým textom robiť čo len chceš.
|
|
Registrovaný: 09.05.09 Prihlásený: 07.10.13 Príspevky: 63 Témy: 20 Bydlisko: Košice | Napísal autor témy scrysurn: 17.05.2009 21:03 | |
|
ech... citim sa trapne
uz chapem, tak vdaka za pomoc
|
|
| Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Lokalna siet a internet v Siete | 5 | 522 | 18.09.2007 9:37 Whistler | | Dá sa vytvorit lokálna sieť ? v Sieťové a internetové programy | 4 | 768 | 09.11.2010 22:02 Lukky | | lokalna bezdrotova siet - problem s pripojenim v Siete | 2 | 402 | 30.06.2009 11:42 rastino7 | | premenna v JavaScript, VBScript, Ajax | 10 | 965 | 31.07.2008 17:35 chrono | | Premenná v PHP, ASP | 7 | 633 | 24.08.2008 16:15 p360t | | Najväčia premenná v PHP, ASP | 8 | 438 | 16.02.2010 20:48 janik366 | | PHP premenna v PHP, ASP | 17 | 688 | 27.09.2012 21:16 stenley | | Premenna (int) v Assembler, C, C++, Pascal, Java | 4 | 466 | 30.11.2010 12:54 capricorn7 | | Realna premenna v Delphi, Visual Basic | 1 | 583 | 06.11.2009 21:36 Fico | | OOP, premenna v PHP, ASP | 1 | 621 | 26.10.2009 21:44 rooobertek | | TEXTAREA a premenna v PHP, ASP | 3 | 382 | 13.03.2008 10:35 Blackshadow | | premenna a switch v PHP, ASP | 2 | 406 | 07.01.2010 9:40 tyr | | premenna v url v JavaScript, VBScript, Ajax | 5 | 597 | 07.11.2009 11:50 johny694 | | Nevyuzita premenna C v Assembler, C, C++, Pascal, Java | 7 | 493 | 05.04.2017 7:14 17mark | | premenna do iframe v PHP, ASP | 2 | 240 | 17.11.2013 11:11 shaggy | | premenna v Delphi v Delphi, Visual Basic | 1 | 1104 | 21.04.2009 18:00 Fico |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|