Rozsirenie formulara va komponente, nepreposiela zmenene values

duskohu
Člen | 778
+
0
-

Caute, mam komponentu kde mam tovarnicku na formular. Do tejto komponenty davam dalsie komponenty ktore sahaju na formular a pridaju im dalsie prvky. Vsetko funguje fajn, akurat ked pouzijem nejake tlacidlo onClick na redrawControl, tak ak som si zmenil nejake values form. prvku ktory som vytvoril v rozsirovacej komponente, tak sa mi neprenesu, ostanu tam defaultne values, formularove prvky ktore som vytvoril v tovarnicke tie prenasaju aj zmenene values.
Zjednodusene:

Ked si zmenim nejaku hodnotu v title a content a kliknem reload, tak sa cez $_POST posle len zmenena hodnota z fieldu title, content ostane default ako bola. Neviete mi poradit preco sa mi po onClicku neprenesu zmenene values pre content? Aj ked si dam dumpnut $_POST v onClick[] tak sa zmenene values pre content neprenasaju, su tam default.

class PostFormControl extends Control{

    protected function attached($presenter)
    {
        if ($presenter instanceof Presenter) {
            $provider = ABProvider();
            $control = $provider->create($this);
            $this->addComponent($control, $control->getGroupName());
        }
        parent::attached($presenter);
    }

    protected function createComponentForm()
    {
        $form = $this->formFactory->create();

        $form->addText("title", "Titulok")->setDefaultValue('default1');

        $form->addSubmit('reload', 'Reload')
            ->setHtmlAttribute('style', 'display:none;')
            ->setValidationScope(false)
            ->onClick[] = function (SubmitButton $button) {
            if ($this->presenter->isAjax()) {
                $this->redrawControl();
            }
        };

        if ($this->postEntity == null) {
            $form->addSubmit(self::SAVE_BUTTON_NAME, 'Uložiť')
                ->onClick[] = array($this, 'processAdd');
        } else {
            $form->addSubmit(self::SAVE_BUTTON_NAME, 'Uložiť')
                ->onClick[] = array($this, 'processEdit');
        }

        return $form;
    }
}



class ABProvider extends Control
{
    public function create(PostFormControl $control)
    {
        $form = $control->getComponent('form');
        $metaContainer = $this->form->addContainer('someContainer');

        $metaContainer->addTextArea("content", "Obsah")->setDefaultValue('default2');

        return $this;
    }
......
}

Editoval duskohu (11. 7. 2018 17:23)

duskohu
Člen | 778
+
0
-

Vsimol som si ze mam tento problem len ked sa sa reload posiela ajaxom, ked sa posiela normalne tak to funguje.

Editoval duskohu (11. 7. 2018 17:53)