首页 > 解决方案 > Yii2 ajax 调用后渲染图像

问题描述

所以基本上我有一个处理文件(图像和视频)的控制器,在“视图”视图上我有一个称为“视图内容”的按钮。该按钮正在使用控制器,我希望它在按下时运行对操作的 AJAX 调用并在位于模型中的图像中actionContent($id)呈现页面内。如何处理 AJAX 请求并返回显示在?divid == $iddiv

public function actionContent($id)
    {
        $model = $this->findModel($id);
        switch (substr($model->mime, 0, strpos($model->mime, '/'))) {
            case 'image' :
                return $this->renderAjax('_image', [
                    'img' => $model->getFullPath(),
                ]);
                break;
            default:
                break;
        }
    }

和观点:

 <span class="pull-right">
            <?= Html::a('View Content', ['content', 'id' => $model->id], [
                'class' => 'btn btn-default',
                'id' => 'content'
            ]); ?>
        </span>

使用我已经尝试过的脚本:

 $(document).ready(function () {
        $('#content').click(function () {
            $(this).preventDefault();
            $.ajax({
                type: "GET",
                url: $(this).href,
                contentType: "<?= $model->mime?>",
                success: function (response) {
                    ('.show-content').html('<img src="data:image/png;base64,' + response + '" />');
                }
            })
        })
    })

标签: phpjqueryajaxyii2

解决方案


推荐阅读