Select, generování option v šabloně

před 23 dny

volpe
Člen | 4
+
0
-

Ahoj, chtěl bych se zeptat, zda je možné vytvořit options k selectu v latte?
Vím, že můžu pole options vložit v komponentě, ale kdyby to šlo takto, bylo by to pro mě lepší.
Vytvářím to takhle, ale selectBox mám prázdný.
Děkuji předem za info.

<?php

<select n:name="products">
    {foreach $items as $item}
        <option value="{$item->id}">{$item->name}</option>
    {/foreach}
</select>

?>
<?php

$form->addSelect("products", "Produkty");

?>

před 23 dny

Polki
Backer | 164
+
-2
-

zkus toto:

<?php

<select n:name="products">
    {foreach $items as $item}
        <option value="{$item->id}" for="products">{$item->name}</option>
    {/foreach}
</select>

?>
<?php

$form->addSelect("products", "Produkty")->setHtmlId('products');

?>

Nezkoušel jsem, možná hodí error

A vlastně, proč to neplníš už v addSelect?

Editoval Polki (1. 8. 16:25)

před 23 dny

David Matějka
Moderator | 5936
+
+3
-

nette podporuje low level formuláře, ale pokud je to aspoň trochu možný, je lepší všechny položky včetně jejich hodnot vyplnit při definici formuláře. s low level formulářem ti tam například někdo může podstrčit hodnotu, která mezi $items není. s klasickým přístupem, kdy předáš $items do addSelect, se ti nette postará, že dostaneš pouze validní hodnoty.

před 23 dny

Martk
Člen | 515
+
+3
-

Proč nemůžeš/nechceš to vložit přímo do formuláře? Předpokládám (jsem si jistý), že už v action metodě znáš hodnoty selectu, tak ti nic nebrání je tam dát. Zároveň se ti nette postará o validaci.