Kombinace HTML formu s NForms
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Nich
- Člen | 49
Potřeboval bych mít na stránce dva různé formuláře, které by ale reagovaly na submity bez ztráty vyplněných inputů
$form = new NForm;
$form->addText('login', 'login:', 15);
$form->addSubmit('submit_1', 'Odeslat');
if ($form['submit_1']->isSubmittedBy()) {
$values = $form->getValues();
var_dump($values);
}
if(isset($_POST['submit_2'])) {
$values = $form->getValues();
var_dump($values);
}
//body
<form method='post' action=''>
<input type='submit' name='submit_2' value='Odeslat 2' />
</form>
Nform formulář funguje jak má, ale problém nastane když odešlu HTML formulář.
- Po odeslnání submitu 2 se to chová jakobych odeslal zárověň i submit 1 tzn. obě podmínky na submit projdou
- Vyplněné údaje Nformu se ztratí → $values[‚login‘] je prázdná
Neví prosím někdo jak to vyřešit?
- toka
- Člen | 253
Takto se odesílají formuláře správně:
<?php
require 'Nette.minified/loader.php';
$form = new Form('form-1');
$form->addText('login', 'login:', 15);
$form->addSubmit('submit1', 'Odeslat');
echo $form;
if($form['submit1']->isSubmittedBy()) {
echo 'Form 1 - ';
$values = $form->getValues();
var_dump($values);
}
echo '<br />';
if(isset($_POST['submit2'])) {
echo 'Form 2 - ';
var_dump($_POST);
}
?>
<form method="post" action="" id="form-2" name="form-2">
<input type="submit" name="submit2" value="Odeslat 2" />
</form>
Při odeslání druhého se však nezachová obsah prvního. A je třeba si uvědomit, možná to tak máš schválně, že ve druhé podmínce sice kontroluješ odeslání druhého formuláře, ale snažíš se zobrazit data z prvního.