Autor Zpráva
marek0
Profil *
Ahoj, lamu si hlavu nad timto oriskem a prosim o radu. Resim strankovani vysledku vyhledani z formulare (poslaneho met. POST kvuli vyssimu poctu parametru). Problem je ten, ze pokud chci udelat strankovani s "klikacimi cisly" stranek (klasicke href..adresa..offset cili met. GET). Otazkou je, jak potom ziskat pri takto nactene strance puvodni dotaz resp. jeho vysledek. Reseni by bylo pridat parametry hledani do odkazu adresy href, ale to jak jsem psal nechci davat do radku adresy. Nevite, prosim, jak se to da lehce obejit? Je mi jasne, ze muzu vysledek vyhledani/parametry napr. ulozit do cookie, db.. ale to se mi zda takove hloupe. Nebo se da nejakym spusobem natvrdo automaticky odeslat data pomoci POST bez pouziti formulare (napr. javascript po kliknuti na prvek href?)? Jak podobne veci resite vy? Dekuji za rady!
RAmses
Profil
Zdravím,

nebudu se zabývat tím že i google má hodně parametrů v url a jdu rovnou s radou.

Protože nepoužíváš GET tak pro vyhledávače obsahuje tvoje stránka, řekněme hledej.php, vlastne jen defaultni data, nejspíš formulář. Takže bych to odeslání dotazu rovnou udělal AJAXem rovněž metodou POST. Bude to efektní a zároveň nebude potřeba reloadovat celou stránku.

Návod jak posílat požadavky metodou POST v AJAXu je zde

Když se budeš trápit tak dej vědět.

Jinak záleží na účelu toho vyhledávače, jestli je to jen vnitřní pro návštěvníky a nezáleží na indexaci výsledků ostatními vyhledávači, pak použití metody POST nic nebrání
marek0
Profil *
diky za info! pouziti ajaxu me v tomto kontextu nenapadlo (delam prvni vlastovku v zend frameworku tak sem se toho trochu bal), ale prozkoumam a asi to bude nejrozumnejsi
RAmses
Profil
No tak v zendu to se můžeš na ten návod vyprdnout :) Já jsem v něm sice nedělal, ale kolega ano, takže vím, že na AJAX má metody. Tak ať ti to šlape :)
srigi
Profil
No ak to robis v ZF a nekdel by si vyuzivat AJAX, slo by to mozno pomocou takehoto navrhu:
- formular s vyhladavanym retazcom by sa odoslal na idex akciu SearchController-a
- SearchController by z udajov z POST zostavil Zend_Db_Table objekt, ktoremu by predal query, tak aby boli vratene vsetky vysledky
- z vysledneho Zend_Db_Table objektu by si vytiahol prvu stranku sady
- objekt by si serializoval a niekam odlozil (napr. session alebo do DB)

No a ked by user klikol na druhu stranku, zavolal by si nejka dalsiu akciu SearchController-a, parametrom v URL by si predal identifikator objektu a pozadovanej stranky (limitovanej sady), deserializoval by si si Zend_Db_Table objekt, vykonal nad nim query a vypisal.

Tak trochu brainstroming, tazko povedat ci je to elegantne riesenie, ale fungovalo by to aj bez JS.
marek0
Profil *
srigi: diky za info tahle cesta se mi zda dobra, hlavne kvuli funkcnosti bez JS. Sice sem se chtel obejit bez ukladani vysledku ci dotazu, ale je mi jasne, ze se tomu stejne nevyhnu paklize to chci resit timto zpusobem
srigi
Profil
marek0
Tak ma napada, ze to asi nebude uplne koser riesenie, nakolko ZF ponuka komponenty Zend_Search_Lucene a Zend_Paginator. Takze prestuduj si ZF manual, alebo bez na ZF cz forum.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: