Autor | Zpráva | ||
---|---|---|---|
Golf Profil |
#1 · Zasláno: 24. 1. 2007, 00:57:05
zdravím a prosím o zamyšlení nad jedním problémem a o případnou radu,
Používám Ajax pro nahrazení části stránky - normálně mi to funguje a je to nějak takto: <script type='text/javascript' src="server.php?client=all"></script> Řekněme, že tuto část kódu vygeneruje skript index.php z nějakých šablon. Pokud zavolám http://localhost/index.php vše je bez problémů. Jenže, já někdy volám třeba http://localhost/class/method/parameter1/parameter2 a toto přesměruju na index.php pravidlem RewriteRule .* ./ s tím, že dotyčný index.php si pak udělá něco s těmi parametry - třeba $requestUri = explode('/', trim($_SERVER['REQUEST_URI'], '/')); - Důležité je, že v tuto chvíli je v url prohlížeče adresa http://localhost/class/method/parameter1/parameter2 a Ajax už nefunguje. Strávil jsem nad tím celý den, než jsem přišel na tuto souvislost, neb s Ajaxem právě začínám. Je to jeho normální chování ? Ještě pro shrnutí: http://localhost - funguje http://localhost/index.php - funguje http://localhost/index.php/ - nefunguje http://localhost/index.php/neco - nefunguje http://localhost/neco/neco/neco - nefunguje Napadají mne dvě a pů řešení: 1) Naučit javascript redirect, pokud to nějak jde (a prosím, pokud víte poraďte jak) 2) Změnit redirect tak, aby přesměroval na index.php?section=#1&action=#2 což se mi nelíbí 3) Nebo poté co index rozparsuje parametry uložit je do session, udělat redirect na index.php a pak si je ze session vytáhnout a pokračovat dál jako by se nechumelilo. Toto je jednak drbání levou nohou za pravým uchem, jednak stejně zmizí ta původní url, kterou jsem chtěl zachovat. (oproti řešení 2 vlastně žádná výhoda, spíš nevýhoda, parametry zmizí úplně :-)) Kdož máte nějakou zkušenost, prosím poraďte. Díky Petr Bolf |
||
los Profil * |
#2 · Zasláno: 24. 1. 2007, 01:22:35
Čo znamená, že nefunguje? Nevráti sa očakávaná odpoveď na požiadavku, ktorú vytvorí metóda replace objektu HTML_AJAX? Alebo to spadne kvôli tomu, že nepozná objekt HTML_AJAX, lebo sa nepodarí pripojiť skript z adresy server.php?client=all?
Mohol povedať viac, než len funguje/nefunguje - napríklad napísať nejaké chybové hlásenie? Tipujem, že to nenájde súbor na adrese http://localhost/neco/neco/neco/server.php?client.all, ale možno sa mýlim, lebo neviem, ako vyzerajú ostatné presmerovávacie pravidlá. Ak to nie je v tomto, dala by sa vystaviť nejaká ukážka, kde by sa to dalo vidieť? |
||
Golf Profil |
#3 · Zasláno: 24. 1. 2007, 02:42:40
A to je dost možný, to mně nenapadlo. Chová se to tak, že se ten skript vůbec nevykoná a když je to v tom tagu
< a href="neco" onclick="skript();return(false);"tak to dokonce skočí na tu stránku v href, ačkoliv return false v onclick by tomu měl zabránit. Ale nevím, nejsme schopen nějak ladit javascript, nikdy jsme ho neměl rád :-). Každopádně už z toho asi dost blbnu, zítra (vlastně dneska) se na to podívám, ale chyba bude asi opravdu tady. No, tak si můžu připadat jako blbec :-). Už jsem neviděl nic jiného, než že musí být nějaká záhada v komunikaci mezi serverem a tím XHLHttpRequest objektem, či který to vlastně ten ajax dělá ajaxem. Ale ten komunikuje, chová se úplně stejně jako běžný požadavek na celou stránku, pokud to dobře chápu. díky moc za pořádné nakopnutí Petr Bolf |
||
zero0x Profil |
#4 · Zasláno: 24. 1. 2007, 06:38:53
poradim ti stiahnut si rozsirenie firebug pre firefox. ladenie s nim je pohoda ;-)
|
||
Golf Profil |
#5 · Zasláno: 24. 1. 2007, 15:16:40
Tak je to tak, vinil jsem rewrite_mode a ajax a přitom mi chybělo jedno blbé lomítko o pár řádků výš, díky čemuž se nenačítala knihovna javascriptu. No jo, špatně se hledají chyby, když se hledají někde úplně jinde :-) Díky moc.
Firebug jsem si stáhl a vyzkouším. |
||
Časová prodleva: 11 dní
|
|||
matak Profil |
#6 · Zasláno: 5. 2. 2007, 02:15:13
Zdravim, možná už je to vyřešené, ale mám podobný problém, zkusím rozšířit:
aplikace běží v adresáři http://localhost/ajaxShoppingBasket/basket.html ajax je umísten tady: <script language="javascript" src="libs/ajax/ajax.js" ></script> <script language="javascript" src="libs/basket/basket.js" ></script> ve funkci addToBasket() ze souboru basket.js volám funkci sendForm ze souboru ajax.js to je vše v pořádku problém je s parametrem php souboru volaným ajaxem server ho prostě nenajde, kde hledá soubor basket.php??? pokud v souboru ajax.js bude Ajax.request.open("POST", url, true); ? Díky za odpověď |
||
matak Profil |
#7 · Zasláno: 5. 2. 2007, 02:17:03
sory, jen se prihlasim pro odber emailu
|
||
Časová prodleva: 3 dny
|
|||
Golf Profil |
#8 · Zasláno: 7. 2. 2007, 18:23:51
No, nevím jak máš nastavený .htaccess, ale zkus napsat před url lomítko - takto
/ajaxShoppingBasket/basket.php |
||
matak Profil |
#9 · Zasláno: 7. 2. 2007, 18:28:38
jen pro doplnění podrobněji se to řeší v tomto vláknu:
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=43 255 |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0