Select po odeslání formuláře vrací null v getValues

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

Dobrý den, mám problém ze selectem, největší záhadou je to že před měsícem to fungovalo, potom se v presenteru předělávalo pár věcí, ale konkrétně na funkce ohledně zpracování tohohle formuláře se nesahalo.

Když odešlu formulář mám v dumpu z getValues hodnotu NULL, hledal jsem řešení zde na fóru, kde se řešil stejný problém. Moc mi to nepomohlo, ale je mi záhadou, že to přestalo fungovat samo od sebe.

Stará verze byla:

protected function createComponentControlForm(){
    $form = new Form($this, 'controlForm');

    $form->addDynamic('changeEmployee', function(Container $chng_emp){
        $chng_emp->addSelect('selectEmp', NULL, $this->emp);
    });

    $form->addMultiUpload('files');

    $form->addSubmit('_add', 'Přidat požadavek')
        ->setAttribute('class', 'btn btn-primary button');

    $form->addSubmit('_back', 'Zpět')
        ->setAttribute('class', 'btn btn-info button')
        ->setAttribute('onclick', 'history.back()');

    $form->onSubmit[] = array($this, 'taskFormAdd');
}


public function taskFormAdd(Form $form){

    $section = $this->getSession('addTask');
    $section->control_emp = $form->getValues();
}

$this->emp získávám z první komponenty (je to vícekrokový formulář)

Teď mě ještě napadlo, jestli to nemůže být pořadím, jak jsou komponenty a funkce v presenteru sestaveny
takže:
1, startup
2, 1. kompononta kde ukládám do $this->emp možnosti
3, zpracování 1. komponenty
4, 2. komponenta
5, zpracování 2. komponenty
6, render

Nová verze:

protected function createComponentControlForm()
	{
		$form = new Form($this, 'controlForm');

		$form->addDynamic('changeEmployee', function (Container $chng_emp) {
				$chng_emp->addSelect('selectEmp', NULL, $this->emp);
			}, 1);


            $form->addDynamic('changeDate', function (Container $chng_date) {
			$chng_date->addDynamic('subDate', function (Container $sub_date) {
				$sub_date->addText('empFrom');
				$sub_date->addText('empTo');
				$sub_date->addText('empToTime');
				$sub_date->addText('empFromTime');
			}, 1);
		}, 1);

		$form->addMultiUpload('files');

		$form->addSubmit('_add', 'Přidat požadavek')
			->setAttribute('class', 'btn btn-primary button');

		$form->addSubmit('_back', 'Zpět')
			->setAttribute('class', 'btn btn-info button')
			->setAttribute('onclick', 'history.back()');

		$form->onSubmit[] = array($this, 'taskFormAdd');

		return $form;
	}

	/**
	 * @param $form
	 * @var $section
	 */
	public function taskFormAdd(Form $form)
	{

		$section = $this->getSession('addTask');
		$section->control = $this->temp_control = $form->getValues(TRUE);

	}

1, statup
2, render
3, zpracování 1. komponenty
4, 1. kompononta kde ukládám do $this->emp možnosti
5, zpracování 2. komponenty (zkoušel jsem zaměnit s 6,)
6, 2. komponenta (zkoušel jsem zaměnit s 5,)

Nevíte někdo čím to může být? Děkuji.