Formulář jako komponenta v komponentě a nefukční odesílání
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ondrej256
- Člen | 187
Dobrý den,
Mám komponentu Rodič, která se skládá z komponent (hlavně formulářů)
class ClientControl extends Control
{
public function __construct($orderId)
{
parent::__construct();
}
public function render()
{
$this->template->setFile(__DIR__ . '/ClientForm.latte');
$this->template->render();
}
public function createComponentClientForm()
{
$form = new Form();
$form->addTextArea .......
...
$form->addSubmit("send","Přidat")->setAttribute("class", "btn btn-primary btn-success");
$form->onSuccess[] = callback($this, 'clientFormSubmitted');
return $form;
}
public function clientFormSubmitted(Form $form)
{
throw new Exception("FUNGUJE TO"); // nevykonna se
}
}
Komponenta rodič
<?php
class RodicControl extends Control
{
public function __construct(IContainer $parent = NULL, $name = NULL)
{
parent::__construct($parent, $name);
}
public function createComponentClientControl()
{
$form = new ClientControl();
return $form;
}
public function render()
{
$this->template->setFile(__DIR__ . '/RodicControl.latte');
$this->template->render();
}
}
Všechno se v pořádku vykreslí, ale bohužel se nezavolá funkce pro zpracování formuláře. Když kliknu na tlačítko Přidat tak se načte nová stránka se stejným url (v url není název funkce která by se měla volat – „clientFormSubmitted“)
Vím, že se tu řešilo několikrát něco podobného, ale nic z toho co sem našel mně nepomohlo a taky jsem nenašel případ komponenty v komponentě. Nevím zda v tom není zakopaný pes.
Všem děkuju za rady