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
+
0
-

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

Jod
Člen | 701
+
0
-

A prečo to proste nespravíš na konci cez setDefaults?

phx
Člen | 651
+
0
-

Typoval bych to spise, ze to nekde premazavas. S timhle jsem problemy nemel.

Jakub Šulák
Člen | 222
+
0
-

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…

phx
Člen | 651
+
0
-

Co vrati toto?

$form = new AppForm($this, 'editParam');
$form->addHidden('countOptions')->value = 20;
Debug::dump($form['countOptions']->value);

Mas posledni verzi Nette?

Jakub Šulák
Člen | 222
+
0
-

Super, díky. Takto to valí.
debug::dump = 20;
<input type… value=„20“ />

Proč ale při setValue() a setDefaults() to nefungovalo?

phx
Člen | 651
+
0
-

Ted se mi to take stalo a byla to moje blbost.

Pouzivam operu a reloaduju stranku. Pridam hidden pole a divim se proc tam nic neni. Ale diky reloadu se odesila post bez hidden pole a tam se mi tam rve ''.

Jakub Šulák
Člen | 222
+
0
-

tohle nebude ten samý případ – jinak mám poslední revizi.
Zkusím zprovoznit XDebug a odkrokovat to…