AppForm::setMethod
- sitnarf
- Člen | 27
Ahoj,
mám problém s metodou setMehod u AppForm
, vyhodí mi to
hlášku:
Form::setMethod() must be called until the form is empty
Pokud použiji jen Form
, vše funguje.
Používám Nette 0.9.3 stable, na fóru jsem hledal a dokonce našel ale
hlasí že thread už je vypršený či co.
Díky za odpověd,
Frankie
- sitnarf
- Člen | 27
public function createComponentSearchProject($name){
$form = new AppForm($this, $name);
$form->setMethod('get');
$form->setAction($this->link("Project:search"));
$form->addText("keyword", 'Hledat:');
FB::log($this->projectModel->getSelectPrizes());
$form->addSelect('prize', "Cena", $this->projectModel->getSelectPrizes());
$form->addSubmit("search", "Hledat!");
return $form;
}
- redhead
- Člen | 1313
v tom případě by to chtělo lepší chybovou hlášku, protože nad
tímhle jsem taky dumal, proč to nejde..
(prázdný form je pro mě bez form. prvků)
Jinak v čem je problém to volat kdekoliv a kdykoliv před validací formuláře? Bylo by to rozhodně přívětivější..
Například v továrničce nemůžu uvést defaultní hodnoty jelikož zase bude řvát, že není připojen k presenteru (a změnit methodu nemůžu, nebo jo?)..[EDIT: blbost, jde to]
Editoval redhead (29. 1. 2010 20:19)
- PetrP
- Člen | 587
redhead napsal(a):
Jinak v čem je problém to volat kdekoliv a kdykoliv před validací formuláře? Bylo by to rozhodně přívětivější..
Protože na tom závisí odkuď se budou brát data ($_POST, $_GET), data se berou ve chvíli kdy form připojíš k presenteru, tedy v tu chvíli musí věďět odkuď je brát.
Například v továrničce nemůžu uvést defaultní hodnoty jelikož zase bude řvát, že není připojen k presenteru (a změnit methodu nemůžu, nebo jo?)..[EDIT: blbost, jde to]
Nově (0.9.2 nebo 3) jde nastavovat default ještě před připojenín na presenter.
Nebo můžeš připojit k presenteru jindy:
$form = new AppForm();
$form->setMethod('get');
$this['name'] = $form; // nebo $this->addComponent($form,'name');
...