dva formuláře na stránce jako controly

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

Hezký den,
po promarněných několika hodinách se na vás obracím s prosbou o radu. Mějme jednoduchý control (widget, chcete li)

class WidgetDetailFormular extends Control
{

 	public function createComponentDotaz() {

 	$form = new AppForm();

 // nejaky form veci
		$form->onSubmit[] = callback($this, 'dotaz');

		return $form;

 	}

 	public function render() {
 		echo self::createComponentDotaz();
 	}


 	public function dotaz() {

ok, není problém. Ale přibude v layoutu další formulář a už to nefunguje. Při zkoušce názvu formu, tj.

AppForm($this, $name)

Dostávám zásadně po odeslání (vykreslí se správně), Bad Signal Recive – či že neexistuje vůbec.

Děkuji za každou radu.

sodae
Nette Evangelist | 250
+
0
-

Vždyť ty si vůbec tu komponentu nezaregistroval, jinak kombinovat češtinu a angličtinu, fuj

<?php
class WidgetDetailForm extends Control
{

        public function createComponentQuestionForm() {
                $form = new AppForm();
                //  prvky (priklad: $form->addText('abc', 'Abc:'))
                $form->onSubmit[] = callback($this, 'questionFormSubmitted');
                return $form;
        }

        public function render() {
                echo $this['questionForm'];
        }


        public function questionFormSubmitted() {
                // ...
        }
}

Ale volil bych možnost

class WidgetDetailForm extends AppForm
{
      public function __construct(IComponentContainer $parent = NULL, $name = NULL) {
                parent::__construct($parent, $name);
                // prvky (priklad: $this->addText('abc', 'Abc:'))
                $this->onSubmit[] = callback($this, 'questionFormSubmitted');
      }

      public function questionFormSubmitted() {
              // ...
      }

}
onny
Člen | 67
+
0
-

Ten druhý kód jsem vyzkoušel, pro jeden formulář funguje perfektně, když vytvořím druhý s jiným jménem a jiným jménem akce, nic se nezobrazí (ale první stále funguje), co může být špatně?

PS: za tu češtinu a anglinu dohromady se omlouvám, dám si na to pozor :(

onny
Člen | 67
+
0
-

Poupravení, jedete to, ale měl jsem tam dříve parametr, díky kterému to nyní nejelo. Jak ho tam správně dostanu?

Děkuji za pomoc