我尝试为我的公司制作一个Web应用程序(CRUD应用程序)来管理他们的存储。我使用Yii2框架使其变得简单并使用了很多来自kartik-v的插件但是我的弹出窗口有问题。实际上,我必须在gridview中显示所有存储项目,并且我想为其功能创建一个弹出窗口。我已经为“创建”做了这个,但我不能用show,edit和update功能做同样的事情,因为它(按钮链接)包含在表 - > actioncolumn中。我试着找到一些答案,它引导我进行弹出对话,但它不能正常工作。我试着看按钮。我显示弹出一段时间然后它指向查看页面。我真的不想让它只是一个弹出窗口。有人可以帮我吗?
这是我的动作网格列代码:
[
'class' => 'kartik\grid\ActionColumn',
'header' => 'Actions',
'vAlign' => 'middle',
'template' => '{view} {update} {delete} {popupview}',
'buttons' => [
'popupview' => function ($url, $model) {
$url = Url::to(['companies/view' , 'id' => $model->company_id]);
return Html::a('<span class="glyphicon glyphicon-eye-open" title"></span>',$url, ['class' => 'btn btn-success', 'value' => Url::to(['companies/view' , 'id' => $model->company_id]), 'id' => 'viewButton']);
},
],
],
这是我的模态init:
<?php
Modal::begin([
'header' => '<h4>Companies</h4>',
'id' => 'view',
'size' => 'modal-lg',
]);
echo "<div id='viewContent'></div>";
Modal::end();
?>
这是我弹出的javascript:
$(function(){
$('#viewButton').click(function(){
$('#view').modal('show')
.find('#viewContent')
.load($(this).attr('value'));
});});
有人能帮我吗??
当您单击按钮链接(使用链接)时,它们会在视图页面上重定向,以防止您使用
$('#viewButton').click(function(e){
e.preventDefault();
//rest of the code
});
但是还不够,在模态中加载视图的内容,你必须通过像这样的ajax调用它
$('#viewButton').click(function(e){
e.preventDefault();
$.ajax({
url : '',
data: '',
success: function (response) {
$('#viewContent').html(response);
});
});
在您的控制器中,您必须使用RenderAjax方法来渲染视图