Při použití ->getValues() formulář nevrací hodnoty

- eldest
 - Člen | 58
 
Zdravím,
mám vytvořenou továrničku:
public function createComponentEdit()
        {
            $form = new AppForm;
            $defs = new ListModel;
            $defaults = $defs->vyber($this->getParam('edit'))->fetch();
            $renderer = $form->getRenderer();
            $renderer->wrappers['form']['container'] = NULL;
            $renderer->wrappers['form']['errors'] = FALSE;
            $renderer->wrappers['group']['container'] = NULL;
            $renderer->wrappers['group']['label'] = 'h3';
            $renderer->wrappers['pair']['container'] = NULL;
            $renderer->wrappers['controls']['container'] = NULL;
            $renderer->wrappers['control']['container'] = 'td';
            $renderer->wrappers['control']['errors'] = TRUE;
            $renderer->wrappers['label']['container'] = NULL;
            foreach ($this->template->set['col'] as $key => $col)
            {
                $form->addText($col['field'], '')->getLabelPrototype()->class('hidden');
            }
            $form->addSubmit('send', 'Ulož');
            $form->onSubmit[] = callback($this, 'formEditSubmitted');
            $form->setDefaults($defaults);
            return $form;
        }
v template mám
{widget edit}
a zpracovávám touto metodou:
if($form['send']->isSubmittedBy())
            {
                $val = $form->getValues();
                Debug::dump($val);
                die();
            }
vrací
array(0)
Víte někdo, co tam mám za chybu ? Předem díky za odpovědi

- westrem
 - Člen | 398
 
Si si isty, ze sa ti pri potvrdeni formularu, tzn. pri novom requeste vytvori
rovnaky formular? Teda v tvojom pripade sa jedna o rovnake naplnenie pola
$this->template->set['col'], pretoze ocividne submit
podmienka zbehne ale formular nema ziadne polia odkial by mal brat hodnoty.

- Patrik Votoček
 - Člen | 2221
 
jen doplnim co uz napsal redhead… navic je to
$this->template->set['col'] osklive a fuj a vubec se me
nelibi. nevim sice co a proc to tak je ale na 99.9% je to spatne.

- trollnet
 - Člen | 8
 
ahoj, chtel bych se zeptat na jednu vec:
z 1 formulare bych chtel ukladat do
2 tabulek. Nevim ale jak si za pomoci metody
$data = $form->getValues(); (nebo nejak jinak) coz mi da napr.
hodnoty
<?php
array(2) {
   "predmet" => "chemie" (3)
   "dochazka" => "ano"
   "znamka" => "5"
}
?>
vytahnout jen tu hodnotu, kterou chci tak, abych pro vlozeni do databaze pouzil
<?php
public static function insert($data)
      {
          dibi::query('
			INSERT INTO [tabulka]', $data
          );
      }
?>
Pozn. Nechci menit dotaz na
<?php
public static function insert($data)
      {
          dibi::query("INSERT INTO [tabulka] (sloupec1) VALUES ($hodnota1, $hodnota2)");
      }
public static function insert2($data)
      {
          dibi::query("INSERT INTO [tabulka2] (sloupec1) VALUES ($hodnota3)");
      }
?>
a do toho vkladat $data['hodnota++'], aby dotaz zustal
universalni

- trollnet
 - Člen | 8
 
diky za rychlou odpoved… no drzel bych se toho kontejneru, ale s nette zacinam a po pravde nevim, jak na to. Muj formular bez validace vypada nejak takhle
<?php
public function createComponentPridatForm()
      {
          $form = new AppForm();
          $form->addText('predmet', 'Predmet');  // do prvni tabulky
          $form->addText('znamka', 'Znamka', 2); // do druhe tabulky
          $form->addSubmit('Submit', 'Pridat');
          $form->onSubmit[] = callback($this, 'pridatFormSubmitted');
          return $form;
      }
      public function pridatFormSubmitted(AppForm $form)
      {
          $data = $form->getValues();
	  PridatModel::insert($data);
          $this->flashMessage('Predmet ulozen!');
          $this->redirect('default');
      }
?>
Muzete mi prosim ukazat jak upravit formular a pak se nasledne odkazovat na data? Moc dik
Editoval trollnet (26. 11. 2010 22:52)