Odeslání formuláře zaškrtnutím checkboxu
- icanjan
- Člen | 30
Zdravím a prosím o radu.
Mám formulář s několika checkboxy a selectem a potřebuji, aby se mě po
změně hodnoty checkboxu (později i selectu, ale teď řeším checkboxy)
odeslal formulář.
Můj kód mi žádnou flash zprávu nevypíše, z toho usuzuji, že se nic
neodešle.
<?php
protected function createComponentStyleForm() {
$form = new Form;
$form->addCheckbox('obraz', 'Obraz')
->setAttribute('class', 'form-control input-sm input-bg');
$form->addCheckbox('vaza', 'Vaza')
->setAttribute('class', 'form-control input-sm input-bg');
// někde na foru jsem našel, že si tam mám přidat skryté pole, aby formulář vždy odeslal data
$form->addText('hid', 'HID', 1)
->setValue("h");
$form['obraz']->getControlPrototype()->onclick("submit();");
$form['vaza']->getControlPrototype()->onclick("submit();");
$kraje = array(
'PH' => 'Hlavní město Praha',
'ZK' => 'Zlínský kraj' );
$form->addSelect('region', 'Vyber kraj:', $kraje)
->setDefaultValue('PH');
return $form;
}
public function styleFormSubmitted(UI\Form $form) {
$this->flashMessage("OK", 'success');
// $this->redirect('Homepage:');
// $this->redirect('this');
}
?>
Ani jiné diskuse z fóra mě nepomohly, tak prosím o pomoc s konkrétním případem. Díky
- icanjan
- Člen | 30
aha, tak submit jsem napsanou neměl. Dopsal jsem ji
<?php
public function submit() {
$this->flashMessage("OK - submit", 'success');
styleFormSubmitted($this);
}
?>
ale výsledek je pořád stejný. Nefunguje to. Potřebuji jen zavolat funkci styleFormSubmitted, kde si uložím zaškrtnuté checboxy do DB.
Zkoušel jsem i místo řádku
<?php
$form['obraz']->getControlPrototype()->onclick("submit();");
?>
tento
<?php
$form['obraz']->getControlPrototype()->onClick[] = callback($this, 'styleFormSubmitted');
?>
ale ani to mě nezavolalo styleFormSubmitted
- Michal Vyšinský
- Člen | 608
Ta submit funkce má být v js. Na straně PHP toto neuděláš.
Toto by ale mělo fungovat:
$form['obraz']->getControlPrototype()->onclick("this.form.submit()");
- icanjan
- Člen | 30
Tak jsem použil
$form['obraz']->getControlPrototype()->onclick("submit();");
přidal jsem řádek
$form->onSuccess[] = callback($this, 'styleFormSubmitted');
ale hlavně jsem ten select, který jsem vytvářel s těmi checkboxy,
vykreslil ve formu a ne až za ním. Z nějakého důvodu to asi fungovalo, ale
nezobrazovalo to tu flash zprávu.
Díky za navedení