_munky
6.10.2008, 10:30:35
Witam,
Jak to obecnie działa (tak w skrócie):
- w bazie mam tabelę, która zawiera obiekty HTML (input [text, password, radio], select itp)
- mam klasę a w niej metody, które renderują mi te obiekty HTML w SMARTY
- obecnie tworzę obiekt klasy odpowiedzialnej za tworzenie formularza, w smartach renderuje sobie taki formularz (text, password, radio, select, itp)
Czego potrzebuję:
- potrzebuję dynamicznie podpinać listy wartości pod obiekty HTML (select). Lista wartości zaczytywana z bazy danych.
Mam jakieś pomysły ale są bardzo "słabe" i mało elastyczne.
Z góry dzięki za podpowiedź w rozwiązaniu problemu.
pozdrawiam
munky
blooregard
6.10.2008, 11:15:18
Odczytujesz wartości dla <option> z bazy, przekazujesz sobie zwrócony wynik jako tablicę asocjacyjną (np. $smarty->assign_by_ref('opcje', $opcje_z_bazy);
A w szablonie jedziesz:
Kod
<select name="lista">
{foreach from=$opcje name=opcje_w_lista key=k item=i}
<option value="{$i.wartosc_przekazywana_z_selecta}">{$i.nzawa_warosci_widoczna_w_selekcie}</option>
{/foreach}
</select>
_munky
6.10.2008, 11:38:03
blooregard tak też tak myślę.
Tylko się zastanawiam jak to rozwiązać od strony technicznej mianowicie. Czy trzymać atrybut (zapytanie SQL) w którym będę definiował sobie jakie wartości ma pobierać i z jakiej tabeli i później wynik przekazać do metody, która mi zwróci listę wartości. Metoda działałaby coś na wzór execute w ORACLE.
Pytanie teraz w jaki łatwy i elastyczny sposób powiązać renderowanie formularza z dynamiczną listą wartości ? Nie chodzi mi o gotowe rozwiązanie a bardziej o pomysł.
pozdrawiam
munky