Checkboxlist indexy jako id ze zdroje
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- joehoe
- Člen | 12
Zdravím, nevíte jak bych mohl u checkboxlistu docílit toho, aby se po odeslání formuláře zobrazily všechny položky (ne pouze ty, co jsou zaškrtnuté) a navíc, aby místo indexů v poli byly ID ze zdroje (vkládáné pole z databáze) a hodnota prvků v poli by byla opravdová hodnota (FALSE/TRUE). ?
fce getControl
public function getControl($key = NULL)
{
if ($key === NULL) {
$container = clone $this->container;
$separator = (string) $this->separator;
} elseif (!isset($this->items[$key])) {
return NULL;
}
$control = parent::getControl();
$control->name .= '[]';
$id = $control->id;
$counter = -1;
$values = $this->value === NULL ? NULL : (array) $this->getValue();
$label = Html::el('label');
foreach ($this->items as $k => $val) {
$counter++;
if ($key !== NULL && $key != $k) continue; // intentionally ==
$control->id = $label->for = $id . '-' . $counter;
$control->checked = (count($values) > 0) ? in_array($k, $values) : false;
$control->value = $k;
if ($val instanceof Html) {
$label->setHtml($val);
} else {
$label->setText($this->translate($val));
}
if ($key !== NULL) {
return (string) $control . (string) $label;
}
$container->add((string) $control . (string) $label . $separator);
}
return $container;
}
Editoval joehoe (22. 4. 2012 12:13)