Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework][ZF] Formularz i GET
Forum PHP.pl > Forum > PHP > Frameworki
taro
Witam.

Mam pytanie odnośnie formularzy w ZF.

Po pierwsze chciałbym zrobić wyszukiwarkę, więc tworzę sobie formularz w Zend_Form.

Jako, iż chciałbym zrobić dodatkowo paginację chcę przekazywać parametry w adresie:

Bootstrap
$wyszukiwarkaRoute = new Zend_Controller_Router_Route('/wyszukiwarka/:page/:stanowisko/:branze/:wojewodztwo/:dlugosc',
array('controller'=>'index', 'action'=>'wyszukiwarka', 'page'=>'1'));
$router->addRoute('wyszukiwarka', $wyszukiwarkaRoute);

Teraz trzeba w Zend_Form dać method GET i tu pojawia się kilka problemów, m. in:
- URL - chciałbym, aby URL był w formie tak jak powyżej, jest zaś:
?stanowisko=&branza=all&wojewodztwo=all&dlugosc=all&csrf_token=XXX&submit=sercz

i tak dalej
setaction mam puste, bowiem nie mam pomysłu jak można dodać tam URL, aby pobierał parametry z formularza w klasie formularza i wrzucał go tam.

- zawartość inputów i list przy GET. W POST wartości wprowadzone przez użytkownika w przypadku błędów w wypełnieniu formularza pozostają, w przypadku GET formularz za każdym razem jest czyszczony. ->setValue() nie mam zdefiniowanego, bowiem tutaj też nie mam pomysłu jak w klasie formularza to pobrać.
Można robić na około i tworzyć formularz przekazując mu jakieś wartości, ale podejrzewam, że jest prostsza droga, aby to osiągnąć.

Bardzo chętnie posłucham porad i wskazówek.

Dziękuję,
Pozdrawiam.


werek
co do opcji którą chcesz uzyskać masz dwa podejścia, jedno z js drugie bez

pierwsza opcja polega na obsłużeniu za pomocą skryptu js akcji onsubmit dla formularza i zwyczajnie zebrać parametry do kupy i przekierować przeglądarke z poziomu uzytkownika

druga opcja to zdefiniować adres na który ma zostać wysłany (vide akcja index controller'a jest całkiem rozsądnym wyjściem, ew. akcja w kontrolerze wyszukiwania jeżeli taki zdefiniowałeś) i tam przeprocesować request definując potem przekierowanie na właściwy adres

polecam drugie podejście ze względu bezpieczeństwa jakoze możesz sobie dodatkowo zwalidować wejście aby nie dopuscić do włamania, z poziomu js nie masz takiej mozliwości (pozostaje ci walidacja po stronie akcji wyszukiwarka czy parametry przypadkiem nie rozwalą ci wyszukania)

odnosnie implementacji to jest tyle pomysłów co programistów jednak cały pomysł jest całkiem prosty

ps. formularze wysyłane GET'em zawsze tak sklejają parametry w urlu smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.