ckeditor nevrací aktuální hodnotu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
admin@easyweb4u.cz
Backer | 143
+
0
-

Nasadil jsem ckeditor na textarea obvyklým způsobem. Do ní načítám článek z databáze. Vše se jeví OK, ale formulář (CKEditor) vrací původní hodnotu (nezměněný článek). Data jdou přes AJAX. Když CKeditor odstraním, vrací se z textarea aktuální hodnota a vše funguje správně. Co s tím?

Formulář:

<?php
		protected function createComponentMenucontentForm() {
        $form = new Form;

        $row = $this->database->table('language')->get($this->lang);

        $lng = $row->language;

        $row = $this->database->table('text_1')->where('idMenu = ?', $this->menuid)->fetch();

				$textid = $row->id;

				$row = $this->database->table('text_' . $this->lang)->get($textid);

        $form->addHidden('textid');

        $form->addHidden('langid');

        $form->addTextArea('content', $lng);

        $form->setDefaults([
            'textid' => $textid,
            'langid' => $this->lang,
            'content' => $row->text
        ]);

        $form->addSubmit('send', 'Odeslat')
                ->setAttribute('class', 'btn btn-success');

        $form->getElementPrototype()->class('ajax');

        $form->onSuccess[] = [$this, 'menucontentFormSucceeded'];

        return $form;
    }

    public function menucontentFormSucceeded($form, $values) {
	      if (!$this->isAjax()) {

            $this->flashMessage('Error');
        } else {

                try {

                    $tb = 'text_' . $values->langid;

                    $data = ['text' => $values->content];

                    $update = $this->database->query('UPDATE ' . $tb . ' SET ? WHERE id=?', $data, $values->textid);

                    if ($update) {

                        $this->flashMessage('Editace textu byla úspěšná.' . $values->content);
                    } else {

                        $this->flashMessage('Chyba přenosu dat.');
                    }
                } catch (Exception $e) {

                    echo 'Caught exception: ', $e->getMessage(), "\n";
                }

        }

        $this->redrawControl('flashesAdmin');

    }
?>

Šablona

{control menucontentForm}

<script type="text/javascript">
	CKEDITOR.replace( 'content' );
</script>

Editoval admin@easyweb4u.cz (30. 3. 2017 9:30)

JZechy
Člen | 161
+
0
-

Já kdysi došel k tomu, že na každý click a keyup přenáším data z editoru do původní textarei, aby se vše odeslalo ajaxem jak má.

admin@easyweb4u.cz
Backer | 143
+
0
-

No to by asi pomohlo, ale jak to z editoru do texarey přenést?

admin@easyweb4u.cz
Backer | 143
+
0
-

Zkusil jsem tinyMce a chová se to stejně …

Editoval admin@easyweb4u.cz (30. 3. 2017 10:04)

admin@easyweb4u.cz
Backer | 143
+
0
-

Nechám TinyMce, pokud se použije

<?php
$form->getElementPrototype()->onclick('tinyMCE.triggerSave()');
?>

tak to funguje