hidden pole – snad naposledy
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jakub Šulák
- Člen | 222
Hodně se to tu řešilo, ale nevím, jak je to řešeno v nových revizích, případně kde mám chybu:
<?php
publci function actionEdit()
{
$form = new AppForm($this, 'editParam');
$this->countInputs = 20;
// nejake dalsi prvky a groups
// ...
// -x-x-
$form->addHidden('countOptions')->setValue($this->countInputs);
$form->addSubmit('addOptions', 'Další')
->setValidationScope(FALSE);
$form->addGroup();
$form->addSubmit('save', 'Uložit')
->onClick[] = array($this, 'onSave');
debug::dump($form['countOptions']);
$this->template->editForm = $form;
}
?>
Ten dump mi vrátí:
<?php
object(HiddenField) (16) {
"forcedValue" private => NULL
"caption" => NULL
"value" protected => string(2) "20"
"control" protected => object(Html) (4) {
"name" private => string(5) "input"
"isEmpty" private => bool(TRUE)
...
?>
Ale pak v prohlížečí již je value="".
Jak tam dostanu těch „20“? Díval jsem se, že by šel využít ten forcedValue, ale jak se přidává přes addHidden?
Díky
- Jakub Šulák
- Člen | 222
i když udělám:
<?php
$defaults['countOptions'] = $this->countInputs;
$form->setDefaults($defaults);
debug::dump($form['countOptions']);
$this->template->editForm = $form;
?>
je to to stejné…
Je to možné, ale kde bych to mohl přemazávat?
Za tím předáním šabloně je konec metody a jinou (render, apod.) metodu pro
tento presenter nepoužívám…
- Jakub Šulák
- Člen | 222
Super, díky. Takto to valí.
debug::dump = 20;
<input type… value=„20“ />
Proč ale při setValue() a setDefaults() to nefungovalo?
- Jakub Šulák
- Člen | 222
tohle nebude ten samý případ – jinak mám poslední revizi.
Zkusím zprovoznit XDebug a odkrokovat to…