Odeslání formuláře po změně SelectBoxu
- Joacim
- Člen | 229
Zdravím,
mám nette formulář, kde vytvářím selectbox (hodnoty mám zatím
v latte), formulář si definuji celý v latte kvůli složitějšímu
formátování (používám jen n:name pro bindování) a potřeboval bych tento
formulář při změně hodnoty v selectboxu odeslat a tuto událost zachytit
bejlépe pomocí testHistoryDbFormSucceeded
public function createComponentTestHistoryDbForm() {
$form = new Form();
$form->addProtection(); // Add "Reload form for safe submit, Form was expired."
$form->addSelect('test_history_db');
$form->onSuccess[] = array($this, "testHistoryDbFormSucceeded");
return $form;
}
<form class="" role="" id="" action="" method="post" n:name="testHistoryDbForm">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-database"></i></span>
<select n:name="test_history_db" class="form-control selectpicker show-tick" onchange="this.form.submit()">
<option data-subtext="(PROD)">PROD</option>
<option data-subtext="(TEST)">TEST</option>
</select>
</div>
</form>
Jedná se o přepínání DB kde nechci používat submit tlačítko pokud to nebude vyloženě nutné
Existuje nějaké jednoduché řešení ?
Editoval Joacim (2. 2. 2017 13:55)
- johnnie
- Člen | 54
Nenapisal si kde mas problem, ale tipujem to ze nevidis tie <option> ktore si tam dal do selectu rucne vsak ?
vyskusaj tuto tovarnicku, neviem ci je to idealny sposob uplne ale ja to riesim takto
public function createComponentTestHistoryDbForm() {
$database = [
1 => \Nette\Utils\Html::el()->setText('PROD')->data('subtext', '(PROD)'),
2 => \Nette\Utils\Html::el()->setText('TEST')->data('subtext', '(TEST)'),
];
$form = new Form();
$form->addProtection(); // Add "Reload form for safe submit, Form was expired."
$form->addSelect('test_history_db', NULL, $database);
$form->onSuccess[] = array($this, "testHistoryDbFormSucceeded");
return $form;
}
Editoval johnnie (2. 2. 2017 15:09)
- Joacim
- Člen | 229
johnnie napsal(a):
Nenapisal si kde mas problem, ale tipujem to ze nevidis tie <option> ktore si tam dal do selectu rucne vsak ?
vyskusaj tuto tovarnicku, neviem ci je to idealny sposob uplne ale ja to riesim takto
public function createComponentTestHistoryDbForm() { $database = [ 1 => \Nette\Utils\Html::el()->setText('PROD')->data('subtext', '(PROD)'), 2 => \Nette\Utils\Html::el()->setText('TEST')->data('subtext', '(TEST)'), ]; $form = new Form(); $form->addProtection(); // Add "Reload form for safe submit, Form was expired." $form->addSelect('test_history_db', NULL, $database); $form->onSuccess[] = array($this, "testHistoryDbFormSucceeded"); return $form; }
Díky moc funguje perfektně, stačilo přidat data :D
Editoval Joacim (3. 2. 2017 9:08)