Vzájemná kolize 2 formulářů
- Budry
- Člen | 88
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