Název CheckBoxList má na konci []
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- wallet
- Člen | 6
Mám následující kód genereující CheckboxList:
<?php
foreach ($roles as $role)
{
foreach ($resources as $resource)
{
$name="check".$role->ID_Role."_".$resource->ID;
$form->addCheckBoxList($name, $name, $selaction);
}
}
?>
kde v $selaction je pole akcí, které budou k nastavení ve formuláři. V šabloně si to pak vykresluju takto:
{foreach $resources as $resource}
<td>
{var $name = "check".$role->ID_Role."_".$resource->ID}
{input $name}
</td>
{/foreach}
<td>
</tr>
{/foreach}
Problém je, že do názvu se mi automaticky přidají na konec [], takže html kód vypadá takto:
<td>
<label><input type="checkbox" name="check1_1[]" value="1">view</label><br><label><input type="checkbox" name="check1_1[]" value="2">edit</label><br><label><input type="checkbox" name="check1_1[]" value="3">create</label><br><label><input type="checkbox" name="check1_1[]" value="4">delete</label><br><label><input type="checkbox" name="check1_1[]" value="5">add</label>
Pokud zaměním CheckBoxList za RadioList, je všechno v pořádku a [] tam nejsou. Může mi někdo poradit, co s tím? Díky.
- David Matějka
- Moderator | 6445
to je ocekavane chovani, jelikoz muzes zaskrtnout vic hodnot, tak aby to php pak zpracovalo jako pole a ty hodnoty se neprepsaly.
mimochodem, pro nazev toho formulare nespojuj ten retezec, jak to delas nyni, ale pouzij kontejnery https://doc.nette.org/cs/forms#…, pak se ti to bude lepe zpracovavat (nejdriv X kontejneru pro role a pak v kazdem z nich Y kontejneru pro resource)