Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Generowanie Zend_Form za pomocą partialloop
Forum PHP.pl > Forum > PHP > Frameworki
Riggs
Witam,
czy ktoś wie czy takie połączenie jest możliwe? W "czystym" PHP mieszając HTML i kod PHP o takie cudo bardzo łatwo ale pisząc aplikację we frameworku stwarza to ogromy problem.
Mam do wygenerowania formularz dla n liczby zdarzeń (np. meczy piłkarskich). Element formularza to div z trzema wierszami: nagłówek z datą rozegrania meczu, drugi wiersz z herbami(obrazki) drużyn a pod nimi pola input do typowania wyniku, niżej nazwy drużyn.
Mam stworzone zapytanie SQL które odpowiednio łączy mi tabele i pobiera wszystkie dane (id meczu, id drużyn, ew wcześniejszy typ, obrazki itp) ale nie wiem jak połączyć to w jedną spójną całość. Wujek google też nie pomógł, mam nadzieję że tutaj ktoś już zmagał się z podobnym zagadnieniem i wie jak to zrobić.
mjdesign
A nie lepiej sobie napisać jakiego helpera lub widget.

MJ
Pilsener
Cytat
ale pisząc aplikację we frameworku stwarza to ogromy problem.
- w zendzie? Bez przesady, to raczej zbiór komponentów, nikt nie każe używać Zend_Form, a nawet jeśli to:
1. Do każdego formularza można podpiąć własny widok
2. Każdy formularz można generować dynamicznie zarówno w kontrolerze, jak i samym formularzu (choćby pola select)

Problem pojawia się dopiero wtedy, gdy trzeba jakoś szczególnie otagować elementy np. multi-czekboksów - ale wtedy przychodzi nam z pomocą punkt 1, robisz sobie widok gdzie te inputy rozmieszczasz jak chcesz i albo dodajesz to samo w zend_form , albo odbierasz formularz tradycyjnie przez $_POST.
quality
Mozna nawet w bardzo prosty sposob tworzyc wlasne elementy formularza smile.gif
Ja zawsze tego uzywam przy dynamicznym generowaniu formularza, dodatkowo wykorzystujac grupowanie pol formularzy smile.gif
Riggs
Ok, pokombinowałem trochę i w sumie zrobiłem coś takiego, że formularz generuję normalnie za pomocą Zend_Form ale nie wyświetlam go bezpośrednio we widoku tylko pętlą (form->getElements() i później już z górki). Na moje potrzeby wystarczy, choć jest z tym trochę roboty.
Natomiast zastanawia mnie jeszcze jedna rzecz... W jaki sposób przekazać do widoku informację o tym, jaki obrazek ma wyświetlić (herb drużyny). Obrazki niestety nie nazywają się ID.jpg tylko mają jakieś losowe nazwy... Czy pobierać to w widoku np DruzynaMapper::pobierzObraz($id) czy w formularzu przez jakieś ukryte zmienne (choć to chyba nie jest dobry pomysł).
Pilsener
Zmienne niezbędne do wyświetlenia grafiki preparujesz w kontrolerze lub formularzu, następnie przekazujesz je do widoku i tam wyświetlasz poprzez $this->url(). Jeśli obrazek ma być dynamicznym elementem formularza to jest gorzej - najprościej po prostu dodać <img /> do label czy description, przy wyższych wymaganiach musimy zrobić to w dekoratorze lub stworzyć własny widok, którego użyjemy jako dekoratora.
quality
Ja obmyslilem prostsza metode pokazywania obrazkow w widoku formularza smile.gif

Wystarczy ze w klasie formularza dodamy:
  1. public $img;


Nastepnie przy generowaniu kontrolek, generujemy sobie obrazek:
  1. $this->img = '<img src="..." />'; // tutaj generujemy obrazek


I nastepnie wywolujemy go w widoku formularza jak normalna kontrolke:
  1. echo $this->element->img;


Pozdrawiam
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.