Php 通过ajax请求时未初始化Yii2 CKeditor

Php 通过ajax请求时未初始化Yii2 CKeditor,php,jquery,ajax,ckeditor,yii2,Php,Jquery,Ajax,Ckeditor,Yii2,我试图添加一个from,其中包含一个通过AJAX请求嵌入的CKeditor小部件。请求本身工作正常,并返回我想要的一般局部视图。除了Ckeditor小部件之外,一个普通的文本框是return 当项目被添加到组中并且页面被重新加载时,相同的partialView将与所有组项目一起呈现在foreach中,这一次CKeditor很好地就位了 下面发布了我的控制器、CKeditor和Scipt的初始化以及AJAX请求。CKeditor包含在_ContentItemHtml视图中 我已经看过了,但是我不能

我试图添加一个from,其中包含一个通过AJAX请求嵌入的CKeditor小部件。请求本身工作正常,并返回我想要的一般局部视图。除了Ckeditor小部件之外,一个普通的文本框是return

当项目被添加到组中并且页面被重新加载时,相同的partialView将与所有组项目一起呈现在foreach中,这一次CKeditor很好地就位了

下面发布了我的控制器、CKeditor和Scipt的初始化以及AJAX请求。CKeditor包含在_ContentItemHtml视图中

我已经看过了,但是我不能从JS调用任何CKeditor函数,因为它是作为小部件加载的

控制器动作

视图中的活动窗体:

Script.js

使用而不是渲染部分。从文档中:

[renderAjax]根据AJAX请求呈现视图

此方法类似于renderPartial,只是它将使用JS/CSS脚本和在视图中注册的文件注入渲染结果。因此,应该使用此方法而不是renderPartial来呈现视图以响应AJAX请求

使用而不是渲染部分。从文档中:

[renderAjax]根据AJAX请求呈现视图

此方法类似于renderPartial,只是它将使用JS/CSS脚本和在视图中注册的文件注入渲染结果。因此,应该使用此方法而不是renderPartial来呈现视图以响应AJAX请求


如果我理解正确,那么ckeditor.js已经包含在主模板中了吗?添加小部件后,必须再次初始化ckeditor。为此,首先检查您的主模板中是否已经包含了ckeditor.js,然后可能会发布小部件生成的html,这样我们就可以通过Yii2框架帮助确定正确的jQuery selectorTry@hyde I'm load ckeditor,这将处理所有javascript。我无法访问此项。@托弗将参数添加到返回值$this->renderPartial“ContentItemHtml”['model'=>$model],false,true;但它似乎没有任何作用。我只是注意到你使用的是yii2而不是yii1。在这种情况下,尝试使用而不是renderPartialIf我理解你的权利,ckeditor.js已经包括在主模板中?添加小部件后,必须再次初始化ckeditor。为此,首先检查您的主模板中是否已经包含了ckeditor.js,然后可能会发布小部件生成的html,这样我们就可以通过Yii2框架帮助确定正确的jQuery selectorTry@hyde I'm load ckeditor,这将处理所有javascript。我无法访问此项。@托弗将参数添加到返回值$this->renderPartial“ContentItemHtml”['model'=>$model],false,true;但它似乎没有任何作用。我只是注意到你使用的是yii2而不是yii1。在这种情况下,请尝试使用而不是renderPartial
public function actionCreateHtml($contentitemgroupid)
{
    $model = new ContentItemHtml();
    if (isset(Yii::$app->request->post()['ContentItemHtml'])) {
        $item = Yii::$app->request->post()['ContentItemHtml'];
        $model->contentitemgroupid = $contentitemgroupid;
        $model->title = $item['title'];
        $model->body = $item['body'];
        $model->save();
        // return $this->redirect(['edit', 'id' => $model->contentitemgroupid]);
    }
    else
        return $this->renderPartial('_ContentItemHtml', ['model' => $model]);
}
echo $form->field($model, 'body')->widget(CKEditor::className(), [
    'preset' => 'custom',
    'clientOptions' => [
        'height' => 200,
        'toolbarGroups' => [
        ['name' => 'basicstyles', 'groups' => ['basicstyles', 'cleanup']],
        ['name' => 'paragraph', 'groups' => ['templates', 'list']],
        ['name' => 'mode']]
    ]])->label(false);
$('#addNewContentItem').on('click', function (e) {
  e.preventDefault();
  var url = 'create-' + $('#itemSelector').val().toLowerCase() + '?contentitemgroupid=' + $('#itemSelector').attr('contentitemgroupid');
  $.ajax({
    type: 'POST',
    url: url,
    cache: false,
    success: function(res) {
      $('.contentItemsManager').append('<div class="ContentItemContainer row">' + res + '</div>');
      AddSaveEventListener();
      AddSaveMediafileEventListener();
      AddRemoveEventListener();
    }
  });
});