Vzájemná kolize 2 formulářů

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Budry
Člen | 88
+
+1
-

Zdravím,
narazil jsem na problém s formuláři. Mám na stránce jeden formulář a pak komponentu, ve které jsou další 2 formuláře. Problém je, že když se snažím odeslat formulář z komponenty řve na mě hlavní formulář, že musím vyplnit jeden z jeho inputů, ovšem druhý formulář z komponenty se odesílá bez problém s kolizí.

Ve zkratce:
Hlavní formulář A
a v komponentě formuláře B a C

Když se snažím odeslat formulář B, řve na mě formulář A že jsem nevyplnil nějaké pole, ale když odesílám formulář C tak je to bez problémů.

Formulář na hlavní stráce (A):

protected function createComponentAddNewPost()
{
	$form = new \Nette\Application\UI\Form;
	$form->addText('title', 'Titulek článku:')
		->setRequired('Musíte vyplnit titulek článku!');
	$form->addTextArea('text', 'Text článku');
	$form->addContainer('categories');
	$form->addText('tags', 'Tagy:');
	$form->addSelect('status', 'Akce:', $this->getStatus())
		->setRequired('Musíte vybrat akci!');
	$form->addSubmit('submit', 'Vytvořit nový článek');
	$form->onSuccess[] = callback($this, 'addNewPost');
	return $form;
}
<tbody>
	<tr>
		<td>{label title /}</td>
		<td>{input title}<br><small id="url"></small></td>
	</tr>
	<tr>
		<td></td>
		<td>{control uploadManager}<td>
	</tr>
	<tr>
		<td>{label text /} <small>Nebude zobrazeno</small></td>
		<td>{input text class=>tinymce}</td>
	</tr>
	<tr>
		<td>Kategorie</td>
		<td id="categories">asddasasdadsdasasdads</td>
	</tr>
	<tr>
		<td>{label tags /}</td>
		<td>{input tags}</td>
	</tr>
	<tr>
		<td>{label status /}</td>
		<td>{input status}</td>
	</tr>
	<tr>
		<td></td>
		<td>{input submit class=>'btn btn-primary'}</td>
	</tr>
</tbody>

V tomto formuláři volám komponentu která obsahuje 2 formuláře:

protected function createComponentAddNewFile()
{
	$form = new \Nette\Application\UI\Form;
	$form->addUpload('upload', 'Nahraj soubor:');
	$form->addSubmit('submit', 'Nahraj soubor');
	$form->onSuccess[] = $this->addNewFile;
	return $form;
}

/**
 * @return \Nette\Application\UI\Form
 */
protected function createComponentAddNewFolder()
{
	$form = new \Nette\Application\UI\Form;
	$form->addText('nameFolder')
		->setRequired('Musíte vyplnit název složky!');
	$form->addSubmit('submit', 'Vytvořit novou složku');
	$form->onSuccess[] = $this->addNewFolder;
	return $form;
}
{form addNewFolder target=>upload_target, id=>newFolder}
	{input nameFolder id=>nameFolder}
	{input submit class=>'btn btn-primary'}
{/form}
{form addNewFile target=>upload_target, id=>uploadForm}
	{input upload id=>uploadInput}
	{input submit class=>'btn btn-primary'}
{/form}

Problém je s formulářem addNewFolder, který při pokusu o odeslání vrací hlášku, že jsem u formuláře addNewPost nevyplnil položku title.
Formulář addNewFile se normálně odešle a provede upload, ale první form ne

Věděl by někdo jak to celé opravit?

Předem díky

petr.pavel
Člen | 535
+
0
-

Střílím naslepo: nemáš B a C omylem vnořené do A?

Budry
Člen | 88
+
0
-

petr.pavel:

eh, máš pravdu… to mě nenapadlo, dík