Autor | Zpráva | ||
---|---|---|---|
Vojtero Profil * |
#1 · Zasláno: 20. 7. 2006, 08:44:31
Cauec,
potrebuju volat PHP soubor z javascriptu a musim mu nejak predat paramtry s tim, ze se vubec neobnovi stranka a vubec nevim jak na to. Zkousel jsem napsat XMLHttpRequest, ktery se mi uspesne vrati, ale jelikoz to je asychronni, driv nez se mi z PHP vrati do js promenny tak mi mezitim utecou funkce, ktery to, co vrati PHP, uz musi mit, pomuze mi to nekdo vymyslet? Napadlo me, ze tam dam nejakej casovac, kterej bude vyckavat, dokud se nevrati ten AJAX(no, neni tam XML) a pak bude pokracovat v behu skriptu, ale nevim uplne jak na to. Struktura meho problemu je tedy: 1)probehne nejaky javascript 2)javascript si zavola PHP s parametrem (takze GET) 3)PHP vrati javascriptu par js promennych 4)probehne dalsi javascript, ktery pak pomoci DOMu zmeni bez reloadu obsah. Diky moc za pomoc. |
||
vinnetou Profil * |
#2 · Zasláno: 20. 7. 2006, 09:03:07
Myslim, ze s Ajaxem by to melo ji. Pomoci ajaxu bych si nacetl nejaky soubor s parametrem napr. hodnoty.asp?id=8 ten by mi vratil pomoci innerHTML skryta formularova policka a z tech bych si hodnoty zpracoval v pres javascript.
|
||
Vojtero Profil * |
#3 · Zasláno: 20. 7. 2006, 09:07:11
To jo, tohle mi funguje, ja ale potrebuju vlastne synchronni request, protoze nez skript pobezi dal, musim mit uz natazeno to, co mi PHP vrati a nevim jak udelat tohle. Zkousel jsem http_request.open('GET',url,false - to ma byt asynchronni), ale to se mi z toho PHP nevrati vubec.
Pak jsem nekde cetl, ze jde nejak predat ty promenne do PHP pomoci formulare, ale nepochopil jsem, jak to udelat bez reloadu stranky. |
||
tiso Profil |
#4 · Zasláno: 20. 7. 2006, 09:45:56
Načo robiť veci jednoducho keď sa to dá komplikovane, že? Dôvod prečo nechceš použiť reload stránky?
|
||
Vojtero Profil * |
#5 · Zasláno: 20. 7. 2006, 10:15:27
To je jednoduche, takhle stoji zadani a ja s nim nehnu.
|
||
vinnetou Profil * |
#6 · Zasláno: 20. 7. 2006, 10:16:03
A co to vyresit uplne jednoduse tim. ze bys tam dal nejdriv neco jako zpracovavam data... na to tam soupnul timeout 1 sekundu a pak pokracoval dal?
|
||
vinnetou Profil * |
#7 · Zasláno: 20. 7. 2006, 10:20:33
ted mne napadlo neco dalsiho :) pridal bych jedno skryte formularove policko a tomu bych priradil hodnotu 0 (na tuhle hodnotu by se nastavilo vzdy na zacatku casti s Ajaxem) a Ajax by ho pak po dobehnuti nahradil polickem s hodnotou 1. Ty bys v javascriptu testoval dokola tohle policko (treba kazde 0,2 sec.) a pokud by bylo=1 pokracoval bys dal.
|
||
Vojtero Profil * |
#8 · Zasláno: 20. 7. 2006, 10:38:58
Vinnetou: No to jsem udelal, jenomze nasledujici funkce se vykonala o podminku driv, nez jsem vratil hodnoty do javascriptu.
Ted prave jsem to vyresil. Mam tam rekurzivni timer a az mu v podmince AJAX vrati hotovo, az tahle podminka pusti dalsi funkce. Aby to nevypadalo, ze jsem blb, rozdil je v tom, ze pred tim jsem ten timer volal asi takhle: funkce1 funkce2-vyhodi XMLHttpRequest funkce3-rekurzivni timer, ktery po dostani OK od funkce2 pokracuje dal funkce4 funkce5 Ale tady se stalo to, ze funkce4 a 5 se vykonala driv, nez funkce3 pustila proces dal. Tak jsem to zmenil na funkce1 funkce2 funkce3 { kdyz ok tak funkce4 a 5 } a ted uz se to se mnou mazli... Diky kluci (a snad i holky) za podnety. Vojta |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0