Formulář a dynamické názvy prvků – manuální vykreslení
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- simPod
- Člen | 383
Vytvářím formulář s dynamickým počtem prvků na základě dat
z databáze. Chtěl bych ty prvky poté v latte vykreslit také dynamicky
pomocí nějakého foreach
, abych mohl použít label a input
zvlášť: {label element/}{input element}
. Jak to
udělat? Díky
Takhle se vytváří formulář
function createComponentForm() {
$form = new UI\Form();
foreach ($els $el) {
$form->addCheckbox("element".$el->id, $el->name);
}
...
A takhle nějak by mělo vypadat vykreslování prvků:
{foreach $form->elements as $element}
<tr>
<td>{label $element->name/}</td>
<td class="last">{input $element->control}</td>
</tr>
{/foreach}
- jiri.pudil
- Nette Blogger | 1032
Makrům label
a input
můžeš v pohodě předat
rovnou objekt s formulářovým prvkem. A IMO by bylo vhodnější použít
Container:
$container = $form->addContainer('checkboxes');
foreach ($els as $el) {
$container->addCheckbox($el->id, $el->name);
}
<tr n:foreach="$form['checkboxes']->controls as $control">
<td>{label $control /}</td>
<td>{input $control}</td>
</tr>