Select, generování option v šabloně

před 4 měsíci

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 4 měsíci

Polki
Backer | 196
+
-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 4 měsíci

David Matějka
Moderator | 5988
+
+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 4 měsíci

Martk
Člen | 534
+
+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.