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
+
0
-

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ář.

  1. Po odeslnání submitu 2 se to chová jakobych odeslal zárověň i submit 1 tzn. obě podmínky na submit projdou
  2. Vyplněné údaje Nformu se ztratí → $values[‚login‘] je prázdná

Neví prosím někdo jak to vyřešit?

toka
Člen | 253
+
0
-

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.

toka
Člen | 253
+
0
-

Je proto asi snazší, nedovolím si tvrdit že lepší ;-), použít i na druhý formulář Nette Forms.

Nich
Člen | 49
+
0
-

Dík za odpovědi. Nacpal jsem to do jednoho NFormu a už to fičí jak má…