Hromadná editace zázanmů – addCheckbox
- Budry
- Člen | 88
Zdravím,
řeším teď malý problém. Vypisuji z databáze data a u každého z nich
potřebuji mít Checkbox kvůli hromadné editaci záznamů.
Potřebuji, abych při zaškrtnutí polí měl k dispozici jednotlivá ID řádků. Bohužel se mi toho nedaří nijak dopracovat.
Zkoušel jsem vytvořit componentu pomocí cyklu
while($this->model->selectAll())
{
$form->addCheckbox('ids['.$this->model->selectAll('id').']')
}
return $form
a v šabloně pak vykreslovat pomocí
<td n:foreach="$items as $item">{input ids[{$item['id']}]}</td>
Ale toto řešení nefunguje.
Zkoušel jsem dokumentaci, ale nic podobného tam není.
Mohl by někdo poradit co s tím?
Předem díky
- Filip Procházka
- Moderator | 4668
@**VaKvas**: Kdyby jsi si přeložil tu chybu, došlo by ti, že
formuláře nedovolují mít v názvu prvku znaky
[]
. Na takové operace jsou Containery.
A jak už kolega zmiňoval, pokud to chceš krapet chytřejší, použiješ můj addDynamic, na který odkazoval.
- VaKvas
- Začátečník | 111
HosipLan napsal(a):
@**VaKvas**: Kdyby jsi si přeložil tu chybu, došlo by ti, že formuláře nedovolují mít v názvu prvku znaky
[]
. Na takové operace jsou Containery.
Aha, toto jsem jeste v Nette nepotreboval…
tedy by to slo poresit asi takto ne?
$c = $form->addContainer('ids');
$c->addCheckbox($this->model->selectAll('id'));
Editoval VaKvas (5. 9. 2011 11:05)
- Budry
- Člen | 88
Díky, pomohlo.
A jak už kolega zmiňoval, pokud to chceš krapet chytřejší, použiješ můj addDynamic, na který odkazoval.
Podívám se na to, vypadá to zajímavě
Ještě v návaznosti na toto téma, spíše zápis a zpracování toho
php
Není použití dvojitého foreach blbost?
foreach($value as $ids)
{
foreach($ids as $id => $val)
{
if($val === true)
{
dump($id);
}
}
}
- Filip Procházka
- Moderator | 4668
Já žádný dvojitý foreach nepsal, jak jsi na to přišel?
foreach ($form['ids']->values as $id => $values) {
dump($id, $values);
}
- Budry
- Člen | 88
Pardon, moje chyba… Byla blbost…
Formulář už to vytvoří, ale mám problém s tím pokud ho chci vykreslit sám do šablony
{form vyberSlovickaForm}
<table n:if="$slovicka">
<tr n:foreach="$slovicka as $slovicko">
<td>{input ids[$slovicko['id']}</td>
<td>{$slovicko['slovickoCZ']}</td>
<td>{$slovicko['slovickoEN']}</td>
</tr>
</table>
{/form}
Nemůže fungovat, a nejde ani pokud vypíši jenom jedno pole…
{input ids[1]}
Omlouvám, se ale furt se mi nedaří přijít na to co s tím …
- 22
- Člen | 1478
kdyby sis prošel odkaz od achtana, ušetřil by jsi polovinu dotazů na co se tu ptáš..
Editoval 22 (5. 9. 2011 15:21)