checkbox s name ve kterém je pole
- Miri
- Člen | 117
Ahoj, mam dynamicky vytvářený formulář (podle nějakých hodnot z databáze). Mám zde tedy několik checkboxů, kterým chci nastavit name jako nějaké pole. Např:
$form->addCheckbox('kategorie[]', $kat->nazev);
Zde starý fungční způsob
<input ... name="kategorie[]" />
Bohužel mi to hlasí chybu, zkoušel jsem tam dávat i kategorie[„$i“], kde $i je narustající hodnota o 1. Bohužel mi to pole také nezkouslo. Nevíte nějaké řešení?
Předem díky za rady
Míra
- Majkl578
- Moderator | 1364
Typický příklad pro použití kontejneru.
$categories = $form->addContainer('categories');
for ($i = 0; $i < 5; $i++) {
$categories->addCheckbox($i, "Můj skupinový checkbox #$i");
}
Zde starý fungční způsob
Funkční kde? Možná tak v čistém HTML. :)
- VojtaSim
- Člen | 55
Majkl578 napsal(a):
Typický příklad pro použití kontejneru.
$categories = $form->addContainer('categories'); for ($i = 0; $i < 5; $i++) { $categories->addCheckbox($i, "Můj skupinový checkbox #$i"); }
mohl by jsi napsat jak to vypsat v latte?
- VojtaSim
- Člen | 55
Já jsem se snažil vytvořit tabulku podobnou těm v datagridu, původně jsem chtěl využít doplňky jako CheckboxList, ale po nainstalování jsem zjistil že to vytvoří jeden list, které nejde rozložit mezi řádky tabulky. Potom jsem našel tenhle návod a začal jsem dělat jednotlivé řádky podle checkboxů a checkboxy podle počtu uživatelů
$accounts = ($this->user->isAllowed('account')) ? $this->account->getAccounts() : false;
// $this->account => model
$AccountRow = $form->addContainer('AccountRow');
foreach ($accounts as $account) {
$AccountRow->addCheckbox($account['id']);
}
Ale stále nemůžu přijít jak přidat do kontejneru další data účtu
(email, jméno, dostupnost), protože mi to vyhazuje:
Nette\InvalidStateException Component with name 'fullname' already exists.
pokud zadám:
foreach ($accounts as $account) {
$AccountRow->addCheckbox($account['id']);
$AccountRow->addText('fullname', $account['fullname']);
$AccountRow->addText('email', $account['email']);
}
Takhle nějak by to mělo vypadat: http://i.imgur.com/Lgg8ntS.png
Potřeboval by jsem vědět jestli je i nějaká jiná metoda jak předat ty data do latte, ale zároveň by tam zůstaly ty checkboxy. Nejlepší by bylo rozšířit Nette o pár dalších formulářových prvků, ale pochybují že se to stane