Nefunguje odesílání formuláře

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

Dobrý den, omlouvám se předem jestli to bude nějaká kravina, ale snažím se na to dojít a furt nic. Už sjem vyzkoušel i jiné kódy, ale furt to samé.

Mám Adminmodul a v něm formulář, který získá data pro editaci a pak jich odešle. Ale když kliknu na tlačítko odeslat, tak se nic nestane, formulář se ani nehne, jen se to znovu načte a to je vše.

Používám Nette 2.0 Beta a PHP 5.3. Poprvé dělám na PHP 5.3, tak se omlouvám, pokud to bude úplná blbost :(

public function actionEdittext($id) {
        $edit = \Pages::findText($id);
        $this->template->edit = $edit;
        $this['createEditForm']->setDefaults($edit);
    }
    public function createComponentCreateEditForm($name)
    {
        $editform = new \Nette\Application\UI\Form($this, $name);
        $editform->addHidden('id');
        $editform->addText('title', 'Titulek');
        $editform->addTextArea('text','Text')
             ->addRule(\Nette\Application\UI\Form::FILLED, 'Musíte vyplnit text článku');

        $editform->addSubmit('sendedit','Odeslat');
        $editform->onSuccess[] = callback($this, 'sendedit');

        return $editform;
    }

    public function sendedit($editform)
    {

                $text = $editform['text']->getValue();
                $name = $editform['title']->getValue();
                $id = $editform['id']->getValue();

                News::editText($id, $text, $name);

                $this->flashMessage('Editace proběhla úspěšně.');
                $this->redirect('edit');


    }

Díky za odpověď ;)

Editoval zuhla (29. 11. 2011 18:17)

Jan Endel
Člen | 1016
+
0
-

A jak ho vykresluješ?

JuniorJR
Člen | 181
+
0
-

Říkáš, že po kliknutí se nic nestane, ale vzápětí píšeš, „že se to znovu načte“. Tak jak to tedy myslíš?

<ot>$this->template->edit = $edit; přesuň do adekvátní render metody</ot>

Editoval JuniorJR (29. 11. 2011 21:15)

zuhla
Člen | 33
+
0
-

pilec napsal(a):

A jak ho vykresluješ?

Vykresluji to přes {widget createEditForm}

JuniorJR napsal(a):

Říkáš, že po kliknutí se nic nestane, ale vzápětí píšeš, „že se to znovu načte“. Tak jak to tedy myslíš?

<ot>$this->template->edit = $edit; přesuň do adekvátní render metody</ot>

Nestane se nic, takovým způsobem, že se ani nesnaží udělat nic z funkce sendedit. Prostě se stránka jen obnoví, nic se needituje.

bojovyletoun
Člen | 667
+
0
-

tak si to nějak odkrokuj (argumenty pages::edit a news::edit a co jde z formuláře především) a debuguj (stačí dump hodnot nebo xdebug). Pár poznámek:

  • opravdu je správně nahoře Pages a dole News?
  • na začátku funkce sendedit můžeš použít třeba toto pro zpřehlednění: $v=$form->values;$id=$v->id;$text=$v->text;
zuhla
Člen | 33
+
0
-

Stým News a Pages to bylo jen na rychlo. Zkopíroval jsem to ze starého projektu. Ale teď sem zjistil, že to nefunguje pouze v AdminModule. To ale vůbec nevím proč.