Výpis dat do tabulky a hromadné zpracování
- mrataja
- Člen | 57
Ahoj, jaká je praxe při tvoření datagridu pro hromadné zpracování záznamů? Vypsat data do tabulky a vygenerovat jim příslušný checkbox s id není problém. Jak na to ale pověsit formulárovou událost, kdy pro všechny zaškrtnuté checkboxy provedu nějakou akci?
<form>
<checkbox 1>Text 1
<checkbox 2>Text 2
<checkbox 3>Text 3
<selectbox>
<option>zobrazovat
<option>nezobrazovat
<option>smazat
<submit> zpracuj
</form>
- sKopheK
- Člen | 207
Stejně jako jakýkoliv jiný formulář zpracuješ odeslaná data. Checkboxy nějak pojmenuješ a pak zkontroluješ, které jsou zaškrtlé. Např.
$values = $form->getValues();
$id_selected = array();
foreach ($values as $key => $value)
{
if (preg_match('#^' . preg_quote(self::LIST_CHECKBOX_PREFIX) . '([0-9]+)$#', $key, $matches) &&
$value == TRUE)
{
$id_selected[] = $matches[1];
}
}
...
kde LIST_CHECKBOX_PREFIX
je konstanta s předponou názvu
checkboxu (jména nemůžou začínat číslem). V poli
$id_selected
máš id všech prvků, které uživatel zaškrtl.
- David Matějka
- Moderator | 6445
@sKopheK: proc takhle slozite? mame containery, nebo v >=2.1 checkbox list
- David Matějka
- Moderator | 6445
@sKopheK: pletes se. muzes pouzit normalni inputy i kontejner, do
ktereho muzes dat zas dalsi inputy nebo dalsi kontejnery. (nebo vlastne
nepletes, jelikoz Form
dedi od Container
, takze
vlastne vzdy je vsechno v kontejnerech :) )