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
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)
- admin@easyweb4u.cz
- Backer | 143
Zkusil jsem tinyMce a chová se to stejně …
Editoval admin@easyweb4u.cz (30. 3. 2017 10:04)
- admin@easyweb4u.cz
- Backer | 143
Nechám TinyMce, pokud se použije
<?php
$form->getElementPrototype()->onclick('tinyMCE.triggerSave()');
?>
tak to funguje