Formulář odešle data jen z jednoho containeru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- gog
 - Člen | 5
 
Ahoj,
mám komponentu
    protected function createComponentFilterForm() {
        $form = new UI\Form();
        $checkboxes = $form->addContainer('checkboxes');
        foreach ($this->parameters as $parameter) {
                $checkboxes->addCheckbox($parameter->id, $parameter->name);
        }
        $ordering = array(
            'abc' => 'Abecedně',
            'rating' => 'Podle hodnocení'
        );
        $other = $form->addContainer('other');
        $other->addSelect('ordering', 'Řazení', $ordering);
        $other->addHidden('current_id', $this->current_id);
        $form->addSubmit('filter', 'Filtrovat');
        $form->onSuccess[] = callback($this, 'filterFormSubmitted');
        return $form;
    }
a metodu která zpracovává formulář:
    public function filterFormSubmitted(UI\Form $form) {
		$values = $form->getValues();
		Debugger::barDump($values);
    }
Po odeslání vidím v debuggeru jen hodnoty kontejneru ‚other‘, kontejner ‚checkboxes‘ neobsahuje nic. Když si ale formulář pošlu metodou GET, tak vidím, že checkboxy byly zaškrtnuté.


Můžete mě navést, kde dělám chybu? Díky

- gog
 - Člen | 5
 
Po odeslání formuláře je
$this->parameters (výsledek dotazu na db) opravdu prázdný.
Plní se v metodě render(). To je problém? Logicky si to
představuju tak, že načtu data z db → zobrazím příslušné checkboxy
→ odešlu formulář → vypíšu které checkboxy byly zaškrtnuty (k tomu
nepotřebuju vědět, co je v db).
Před odesláním proběhne cyklus foreach 2×, přesně podle plánu.
(když si do toho samotného kódu přidám několik checkboxů manuálně, vše funguje)