Problem s formulari, problémy s odesláním/redirect

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

Zdravím, snažim jsem již pár dni o vytvoření formuláře ale stále se mi nedaří. Zkoušel jsem se držet několika návodu ale vždy buď scela neúspěšně nebo se vyskytli některá problémy.
dle návodu na webu:

     protected function createComponentRegistrationForm()
{
    $form = new Form();
    $form->addText('name', 'Jméno:');
    $form->addPassword('password', 'Heslo:');
    $form->addSubmit('login', 'Registrovat');
    $form->onSuccess[] = array($this, 'registrationFormSucceeded');
    return $form;
}

// volá se po úspěšném odeslání formuláře
public function registrationFormSucceeded($form, $values)
{

    // ...
    $this->flashMessage('Byl jste úspěšně registrován.');
    $this->redirect('Plemena:default');
}

v tomto formuláři se mi nepodařilo rozchodit ani jeho odeslání
poté podle jiného návodu, možná staršího:

protected function createComponentPridanipsaFormular()
 {

     $moznosti_pohlavi = array(
       'pes' => 'pes',
       'fenka' => 'fenka',
     );
     $plemena = $this->database->table('plemeno')->fetchPairs('id_plemene','nazev');

     $psi = array(''=>'neznamy otec');
     $psi += $this->database->table('pes')->where('pohlavi','pes')->fetchPairs('cislo_psa','jmeno');
     $fenky = array(''=>'neznama matka');
     $fenky += $this->database->table('pes')->where('pohlavi','fenka')->fetchPairs('cislo_psa','jmeno');

     $form = new Form();
     $form->addText('jmeno', 'Jmeno:')->setRequired();
     $form->addRadioList('pohlavi', 'Pohlavi:', $moznosti_pohlavi)->getSeparatorPrototype()->setName(NULL)->setRequired();
     $form->addSelect('plemeno', 'Plemeno:',$plemena)->setRequired();
     $form->addText('majitel', 'Majitel:');
     $form->addSelect('matka', 'Matka:',$fenky);
     $form->addSelect('otec', 'Otec:',$psi);
     $form->addText('oceneni', 'Oceneni:');
     $form->addSubmit('vlozit', 'Vlozit');

     if ($form->isSuccess())
     {
       $values = $form->getValues();
       $this->database->table('pes')->insert(array(
         'jmeno' => $values->jmeno,
         'pohlavi' => $values->pohlavi,
         'pes_plemeno' => $values->plemeno,
        // 'majitel' => $values->majitel,
        // 'rodic1' => $values->matka,
         //'rodic2' => $values->otec,
         //'ziskane_oceneni' => $values->oceneni,
         ));
       dump($values);
     }
     return $form;
 }

formulář samozřejmě není kompletní, druhý případ fungoval vcelku dobře ale měl jsem problémy s redirectem. Jsem opravdu nováček v NETTE takže za případné chyby s eomlouvám

Oli
Člen | 1215
+
0
-

První případ vypadá v pohodě. Co je Form()? Jakej ma namespace?

kejlicz
Člen | 201
+
0
-

Když v tom prvním místo

$form = new Form();

dáš

$form = new \Nette\Application\UI\Form;

tak to musí fungovat. A když Ti něco nejde, tak piš přesný popis, co nejde a jakou to hází chybu. Podle popisu „nepodařilo se mi rozchodit“ se toho moc nepozná.

Oky_Lister
Člen | 2
+
0
-

Omlouvám se za špatnou formulaci dotazu. Upozornili jste mě na chyby v uvažování. Díky :-)