Так что в основном у меня есть контроллер, который обрабатывает файлы (изображения и видео), и в представлении «просмотр» у меня есть кнопка, которая называется «просмотр содержимого».Эта кнопка использует контроллер actionContent($id)
, и я хочу, чтобы при нажатии она запускала вызов AJAX для действия и отображала на странице в div
изображение, которое находится в модели с id == $id
.Как я могу обработать запрос AJAX и вернуть изображение, отображаемое в div
?
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 + '" />');
}
})
})
})