Jak poznat, zda byla funkce v presenteru zavolana Submit buttonem, nebo Text input formularem?

asinkan
Člen | 38
+
0
-

Ahoj,
mam dva ruzne formulare. Jeden je textinput

<?php
 protected function createComponentEditationForm()
	{
		$form = new Form;
		$form->addText('child', 'Dítě:');
		$form->addSubmit('choose', 'Vybrat')
			->onClick[] = [$this, 'editChildFormSucceeded'];

		return $form;
	}

 ?>

 a druhy je jen submit:
<?php

protected function createComponentAddNewChildForm()
	{
	    $form = new Form;
		$form->addSubmit('submit', 'Přidej nový záznam')
			->onClick[] = [$this, 'editChildFormSucceeded'];
		return $form;
	}
?>

Oba volaji stejnou funkci.

<?php
public function editChildFormSucceeded($button)
	{
		$values = $button->getForm()->getValues();
}
?>

uvnitr ni ale potrebuji zjistit, zda prisla s hodnotou z textoveho inputu, anebo byla zavolana jen Submit buttonem. Jak na to? Dekuji

Ondřej Kubíček
Člen | 494
+
0
-

v těch values bys měl mít ten text input, tak když tam je tak jsi odeslal tím prvním formem, nebo případně podle buttonu, každý máš označený jinak, tak bys to tam měl vidět už přímo v $button

CZechBoY
Člen | 3608
+
+1
-
public function editChildFormSucceeded(\Nette\Forms\ISubmitterControl $button)
{
    if ($button->getName() === 'choose') {
        // editationForm
    } elseif ($button->getName() === 'submit') {
        // addNewChildForm
    } else {
        // bug?
    }
}
David Matějka
Moderator | 6445
+
0
-

proc oba volaji stejnou funkci?

asinkan
Člen | 38
+
0
-

David Matějka napsal(a):

proc oba volaji stejnou funkci?

No do ty funkce jde parametr, vytvori se novej formular, kterej je shodnej pro obe dve volby, jen jednou se predvyplni hodnotama a jednou ne.