вкратце:
Я использую Yii Framework
У меня есть одно окно Ckeditor на моей странице (php / yii framework – отлично работает)
когда я нажимаю кнопку, создается новое окно CKeditor и отображается через вызов AJAX
ПРОБЛЕМА: это новое окно CKEditor правильно отображает текст, хранящийся в базе данных. НО: когда я нажимаю «Сохранить» (кнопка ajax, сгенерированная вместе с остальной частью формы), значения из этого нового окна CKeditor не будут сохраняться: CKeditor отправляет обратно старые значения, полученные из базы данных.
Когда я удаляю Ckeditor и оставляю plain <textarea>
: все в порядке, поэтому я знаю, что контроллер в порядке.
Пожалуйста, кто-нибудь прошел через что-то вроде этого?
Похоже на типичную проблему связывания JAJAJAX. 🙂 Есть несколько возможностей, чтобы исправить это, в зависимости от того, что происходит не так.
Этот пост на форуме Yii должен быть для вас деньгами, именно там я получил большинство этих предложений: http://www.yiiframework.com/forum/index.php?/topic/9341-ckeditor-widget-in-a- виджет CActiveForm /
'textarea' ('onclick'=>'CKEDITOR.instances.TEXTAREA_ID.updateElement()',
Удачи!
Вы можете позволить CKEDITOR обновить текстовое поле до проверки, а проверка clientide / ajax будет работать, как ожидалось:
<?php $form = $this->beginWidget('CActiveForm', array( 'enableAjaxValidation' => true, // one or both 'enableClientValidation' => true, // one or both 'clientOptions' => array( 'validateOnSubmit' => true, // optional 'beforeValidate' => new CJavaScriptExpression('function(form) { for(var instanceName in CKEDITOR.instances) { CKEDITOR.instances[instanceName].updateElement(); } return true; }'), ), )); ?>