Php CKEditor+;Yii加载了AJAX:$\u POST不';不包含更新的值
简言之:Php CKEditor+;Yii加载了AJAX:$\u POST不';不包含更新的值,php,ajax,ckeditor,yii,Php,Ajax,Ckeditor,Yii,简言之: 我正在使用Yii框架 我的页面上有一个单一的编辑器窗口(php/yii框架-工作正常) 当我点击一个按钮时,一个新的CKeditor窗口正在生成并通过AJAX调用显示 问题:这个新的CKEditor窗口正确地显示了存储在数据库中的文本,但是:当我点击“保存”(与表单其余部分一起生成的ajax按钮)时,来自这个新的CKEditor窗口的值将不会保存:CKEditor发回它从数据库获得的旧值 当我卸下Ckeditor并保留普通的:一切正常,因此我知道控制器正常 拜托,有人经历过这样的事情吗
:一切正常,因此我知道控制器正常
拜托,有人经历过这样的事情吗?听起来像是典型的后AJAX JS绑定问题根据出现的问题,有几种可能的修复方法 Yii论坛上的这篇文章应该是你的财富,我从中得到了大部分建议:
'textarea'('onClick'=>'CKEditor.instances.textarea\u ID.updateElement(),
祝您好运!您可以让CKEDITOR在验证之前更新文本区域,客户端/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;
}'),
),
)); ?>
谢谢!问题出在两个地方:ajaxSubmitButton和textarea名称:因为所有ckeditor实例都使用相同的模型,但行不同,所以它们都有相同的名称,就像ajaxSubmitButton一样。我使用“onclick”事件手动将ckeditor窗口的内容复制到textarea,并引入了add每个重复实例的传统名称:D现在可以正常工作了,所以我决定放弃ajax加载-我只是无法让它正常工作,现在它们只是被呈现到单独的JuiTabsYii::app()->clientscript->registerScript('duppa'.$thisLanguageID,“commentvalidate之前的函数”。$thisLanguageID.”({var t=CKEDITOR.instances['..CHtml::activeName($model,'description\u translation')。“['.$thisLanguageID.”].$getData();$('textarea[name=\'.CHtml::activeName($model,'description\u translation')。“['.$thisLanguageID.]\']\'])。val(t);返回true;}$(''.\35; closetlumaczeniedalog.$thisLanguageID.)。单击(函数(){BeforeValidate“.$thisLanguageID。“();}”);”;