Dva submit prvky ve formuláři
- Manny7
- Člen | 67
Ahoj, mám formulář, který mimo klasické submit tlačítko má i select, který je naplněn záznamy vyskytujícími se v databázi. Když vyberu z tohoto selectu nějakou položku, tak se snažím vyfiltrovat vypsat prvky z jiné tabulky do tohoto formuláře. Budu to asi muset udělat přes Ajax, potože refresh by vypadal blbě, ale to už odbočuji.
S čím mám potíž u toho formuláře – nedaří se mi odchytnout, kdy
se klikne a vybere položka z toho selectu.
PRESENTER
public function createComponentFirstForm($name)
{
$form = new AppForm($this, $name);
$form->addText('name', 'Název firmy')
->addRule(Form::FILLED, 'Musíte vyplnit jméno!');
$form->addSelect('spec', 'PREDMETY:', $this->model->findAllTodos())->getControlPrototype()->onchange("submit();");
$form->addSelect('know', 'ZNAM:', $this->model->findAllKnows());
$form->addSubmit('save', 'Uložit informace');
//Debug:dump($this->model->findAllKnows());
$form->onSubmit[] = callback($this, 'processFirstForm');
return $form;
}
public function processFirstForm(AppForm $form)
{
if($form['spec']->isSubmittedBy()) {
$this->flashMessage('Úkol vložen.');
$values = $form->getValues();
Debug::dump($values);
}
if($form['save']->isSubmittedBy()) {
$this->flashMessage('Úkol vložen.');
$values = $form->getValues();
$sql = new Sql;
$sql->name = $values['name'];
//Debug::dump($values);
$this->model->createSql($sql);
}
//$this->redirect('Todolist:show');
}
Ale vždycky se po odeslání formuláře dostaun do toho spodního IFu, nikdy do toho prvního. Zkoušel jsem hledat tady na foru, ale zatím jsem moc řešení nenašel… Neporadili byste, v čem je chyba? Díky.
- Oggy
- Člen | 306
Manny7 napsal(a):
Oggy …jasně, ale dá se nějak zjistit, zda jsem ťuknul právě na ten select? Odchytnout tu událost prostě
asi pouze pomocí js .. viz select onchange
- mlha
- Člen | 58
Vyrešil jsem pomocí rozšíření formuláře. Select jsem naučil
vytvořit si vlastní Submit na onChange se na něj klikne. Další zpracování
takového kliku je již standardní.
viz. zde:https://forum.nette.org/…s-datagridem?…