ponechání hodnot při invalidaci formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
zapp
Člen | 32
+
0
-

Zdravím,
mam ve formuláři radioList, který při změně zavolá js funkci

$infos->addRadioList('layout', 'Layout:', $this->layouts)
	->setRequired('Vyberte layout!')
	->setAttribute('onchange', 'loadBlocks(this.value)');

js funkce ajaxově volá signál v presenteru

function loadBlocks(layout) {
	$.get("?do=loadBlocks", {"layout": layout});
}

signál přidává do formuláře select a invaliduje celý formulář

public function handleLoadBlocks($layout) {
	$form = $this->getComponent('addForm');

	$form['blocks']->addSelect('block', 'Blok', array(1,3));

	$this->invalidateControl('addForm');
}

Vše probíhá v pořádku, jen se mi po invalidaci formuláře mažou všechno hodnoty. Jdou při invalidaci nějak tyto hodnoty zachovat?

Ot@s
Backer | 476
+
0
-

Máš 2 možnosti

  1. do presenteru, kde tvoříš $infos formulář, přidej $infos['layout']->setDefault($this->getParam('layout'));
  2. „zajaxuj“ formuláře
zapp
Člen | 32
+
0
-
  1. v presenteru kde tvořim formulář mam následující…nicméně to je při editačním formuláři. Když mam přidávací formulář, který ze začátku nemá hodnoty, tak jak je zachovat, když předvyplnim inputy a pak invaliduji formulář při akci onchange na radioListu?
if ($this->page) {
	$infos->setDefaults($this->page);
	$blocks->setDefaults($this->pageBlockModules);
}
  1. odesílání formuláře nechci zajaxovat