![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
mam problem gdzie i jak umiejscowic pewien pakiet PEAR mianowicie QuickForm w MVC (choc problem tyczy rowniez innych pakietow). Czy QuickForm powinien byc w modelu, modelem czy tez widokiem, generalnie w moim widoku model ma generowac dane i przekazdywac je do widoku w postaci tablicy, czasem zachodzi potrzeba stworzenia formularza do czego chcem uzyc quicForm i teraz pytanie jak to polaczyc, oczywiscie uzywam smarty i wiem jak polaczyc ten pakiet PEAR ze smarty.
macie jakis pomysl? Ten post edytował squid 9.04.2005, 19:58:20 -------------------- Jeśli życie to kara to nieźle nabroiłem ;-)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Sądze że jak najbardziej Widok.
-------------------- |
|
|
![]() ![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
No dobra mam w widoku ale cos mi tu nie gra.
Wiadomo QuicForm umozliwia sprawdzanie poprawnosci danych i mam w widoku dynamicznie includowany kod formularza i w nim takie cos:
chociaz w MVC przeplyw informacji z widoku do modelu jest mozliwy (poprawcie mnie jesli sie myle) to zeby odwolac sie spowrotem z formularza/widoku do modelu musze uzyc metody statycznej tak jak w przykladzie bo inaczej strace atut validacji przez QuicForm. Gdybym np uzyl czegos takiego:
to dane przejda ale nie ma gwarancji ze sa poprawne przeciez mozna spreparowac formularz i i tak musze gdzies po drodze jeszcze raz zprawdzac poprawnosc danych. Macie pomysl jak to elegancko zrobic? -------------------- Jeśli życie to kara to nieźle nabroiłem ;-)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 597 Pomógł: 30 Dołączył: 19.02.2003 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
U mnie wygląda to tak:
- wyswietlamy formularz - wysylamy i odbywa sie akcja walidacji * blad - akcja zwrotna ( powrot do formularza ) * ok - akcja kolejna w lancuchu header("location... takie rozwiazanie przypomina mi goto ![]() obecnie u mnie jest troche malo eleganckie rozwiazanie, bo komunikacja miedzy poszczegolnymi kalsami akcji jest zrobiona na zasadzie komunikatow zapisywach w sesji actionMessage i fallbackReason ( wywolywane poprzez funkcje zdefiniowane w klasie rodzic, po ktorej dziedzicza poszczegole akcje ) jak bede mial troche czasu to sprobuje zastosowac wzorzec fabryczny i zaimplementowac w nim mozliwosc komunikacji pomiedzy kolejno wywolywanymi akcjami w lancuchu akcji chyba, ze ktos ma inny pomysl to z przyjemnoscia poslucham -------------------- Zapraszam na mój php blog, tworzenie stron.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
U mnie po prostu EditNewsAction która ma za zadanie pobrać dane o Newsie, wyświetlić formularz a jeśli Request_method==POST to dokonuje walidacji i zapisania danych. Potem następuje Redirect lub jakiś komunikat.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Vengeance @ 2005-07-21 20:22:59) U mnie po prostu EditNewsAction która ma za zadanie pobrać dane o Newsie, wyświetlić formularz a jeśli Request_method==POST to dokonuje walidacji i zapisania danych. Potem następuje Redirect lub jakiś komunikat. a uzywasz do tego QuickForm ![]() bo np u mnie GET informuje jaka akcja ma obsluzyc POST (czyli u mnie tylko wyswietlic formularz bo dodanie to juz metoda statyczna ) -------------------- Jeśli życie to kara to nieźle nabroiłem ;-)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
"bo np u mnie GET informuje jaka akcja ma obsluzyc POST"
Wywołanie, a ty przesłania zmiennych to nie to samo :] Zrób sobie np. <form action="script.php?get=1" method="post"> <input type="text" name="post"/> </form> I Request_method == POST ale możesz pobrać zmienne $_GET także :] Ale nie robie tego przez QuickForm, nie lubie PEAR -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
dla mnie nie wazne lubie czy nie lubi, QuickForm to jest kawal dobrej pracy i gdybym chcial napisac cos takeigo i to sam to kilka miesiecy z glowy a wiem ze mozna to do MVC zaadoptowac bo widzialem frameworki oparte na MVC i PEAR
-------------------- Jeśli życie to kara to nieźle nabroiłem ;-)
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wiec przenieś całe te $form->validate na akcje. Tam dokonujesz walidacji i ustawiania parametrów formularza, zaś do TPL przekazujesz gotowy, sparsowany kod formularza z podstawionymi danymi itd.
akcja: // pobranie danych z modelu // jesli request_method == POST to sprawdzamy bledy // $form->validate(); // gdy nie ma bledow to dodajemy element poprzez model i wyswietlamy komunikat // gdy bledy sa dodajemy odpowiedni txt do TPL // utworzenie regul dla formularza, wstawienie danych w pola // przekazanie kodu formularza do TPL // wyswietlenei TPL -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
no teraz mowisz konstruktywnie ale poniewaz juz tyle czasu probuje przystosowac QuicForma do swoich potrzeb powaznie rozwazam napisanie czegos wlasnego
-------------------- Jeśli życie to kara to nieźle nabroiłem ;-)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 22:33 |