Autor Zpráva
Vojtero
Profil *
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 *
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 *
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
Načo robiť veci jednoducho keď sa to dá komplikovane, že? Dôvod prečo nechceš použiť reload stránky?
Vojtero
Profil *
To je jednoduche, takhle stoji zadani a ja s nim nehnu.
vinnetou
Profil *
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 *
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 *
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
Toto téma je uzamčeno. Odpověď nelze zaslat.

0