Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework][ZF] Formularz i GET
taro
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 5
Dołączył: 12.12.2008

Ostrzeżenie: (0%)
-----


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.


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
werek
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 1
Dołączył: 24.04.2007
Skąd: wwa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 11:53