predavanie hodnot z formulara

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

Ahojte, mam vytvorenu tovarnicku ..

<?php
public function createComponentEditForm()
{
    $size = 50;
    $form = new Form;
    $form->addText("cena","Cena",$size);
    ...
    $form->onSuccess[] = callback($this,'editaciaKnihy');
    return $form;
}
+
public function editaciaKnihy($form)
{
    $values = $form->getValues();
....
?>

ale nepredava mi hodnoty … teda napr. ked dam

<?php
$data = array(
    "cena" => $values->cena
);
...->table("knihy")->where("id",3)->update($data)
?>

tak mi to neposle ziadnu hodnotu … a ked namiesto „$values->cena“ dam text … napr.„200“ tak mi to odosle, takze nemam ani tusenia, kde moze byt chyba … za odpovede dakujem :-)

Oli
Člen | 1215
+
0
-

Co ti vraci $values? Vrací vubec něco?

Já tam vždycky píšu, jakou třídu vyžaduju, nevím jestli to tím může být

public function editaciaKnihy(Form $form)
Takeshi
Člen | 596
+
0
-

Oli napsal(a):

Co ti vraci $values? Vrací vubec něco?

Já tam vždycky píšu, jakou třídu vyžaduju, nevím jestli to tím může být

public function editaciaKnihy(Form $form)

… doplnenie Form pred $form som si tiez vsimol, no aj tak nic … zda sa ze values nic nevracia :-(
… mam vytvorene aj ine formulare a tam mi to ide v pohode, tak preto netusim, preco mi to tu nejde

Editoval Takeshi (25. 3. 2014 12:04)

Takeshi
Člen | 596
+
0
-

a dal som aj dump($values); a potvrdilo mi to, ze mi to nic nevracia … teda mi to vypisalo
…„cena“ ⇒ ""

Šaman
Člen | 2666
+
0
-
  1. Zkontroluj, zda došlo k úspěšnému odeslání (nemáš žádná vlastní validační pravidla a všechna ostatní pravidla jsou splněná). OnSuccess proběhne jen při úspěšném odeslání.
  2. Zkus tenhle zápis, bez callbacku. Jestli máš teda aktuální Nette.
<?php
$form->onSuccess[] = $this->editaciaKnihy;
?>
  1. Ještě se ujisti, zda Form používáš z Nette\Application\UI\Form. (A nikoliv Nette\Forms\Form, který nemá vazbu na presenter.)

Editoval Šaman (25. 3. 2014 12:26)

Takeshi
Člen | 596
+
0
-

Asi som uz prisiel na to, preco mi to nic nevracia …

pri vykreslovanie som ‚pretrhol‘ formular … teda takto

<?php
{form updateForm}
    {label cena} - {input cena}
{/form}
    ... tu som chcel dat este jeden form, preto som to pretrhol
{form updateForm}
    {input poslat}
{/form}
?>

… ale aj tak mi celkom nie je jasne, preco mi to nejde

Editoval Takeshi (25. 3. 2014 12:49)

Šaman
Člen | 2666
+
0
-

Pro testování si to vykresli defaultně {control updateForm}, teprve až ho odladíš, tak pořeš šablonu.