Formulář vrací pekelné nedobroty

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

Ahoj,

nechce mi dupat zpracování formuláře. Script vypadá v této chvíli takto:

$form = new Form;
$form->addSelect('gallery', 'Přiřadit galerii: ', $this->upload->getGalleries());

$form->addUpload('img','Snímky: ', true)
        ->addCondition($form::FILLED)
            ->addRule(Form::IMAGE, 'Obrázek může být pouze ve formátu jpg, png nebo gif')
                ->addRule(Form::MAX_FILE_SIZE,'Velikost snímku nesmí překročit 2 mb', 2*1048576);
$form->addSubmit('upload', 'Nahrát');

$this->template->form = $form;

if($form->isSuccess())
{
    $this->flashMessage('Upload proběhl úspěšně!', 'info');
    var_dump($form->getValues());
}else echo "ee";

Do výběru nezadám žádné soubory a stejně po kliknutí na submit Nahrát se to provede jako úspěch a vrátí mi to obsah z GetValues .. Why?

Díky

qteck
Člen | 164
+
0
-

tak jsem to tam hodil jako rule:

->addRule($form::FILLED, ‚Je potřeba naplnit pole obsahem.‘)

ale táži se, co když mi do toho zpracování pošle někdo data z vlastního formuláře? Kde nebude vyskakovat alert. Nebo je to pak ošetřené i co se týče phpka? a stačí pokračovat pouze v v podmínce kde ověřuji isSuccess?

Normálně bych to sprvail tak, že bych ověřil kliknutí na submit a poté, zda pole s uploadem obsahuje nějaká data. Tady to teď dělat nemusím?

Thx

Michal Vyšinský
Člen | 608
+
0
-

Ahoj,
addCondition způsobí to, že se další pravidla aplikují jen pokud je podmínka splněna – tedy pokud je vyplněno pole pro upload, tak se kontroluje typ a maximální velikost. Místo addCondition použij setRequired/addRule($form::FILLED)