YII2 gridview问题的弹出窗口

时间:2018-03-02 01:37:52

标签: javascript php html yii2 yii2-advanced-app

我尝试为我的公司制作一个Web应用程序(CRUD应用程序)来管理他们的存储。 我使用Yii2框架使其变得简单,并使用了很多来自kartik-v的插件 但我的弹出窗口有问题。实际上,我必须在gridview中显示所有存储项目,并且我想为其功能创建一个弹出窗口。我已经为"创建"但我不能以显示,编辑和更新功能的方式做同样的事情,因为它(按钮链接)包含在表格中 - > 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'));
});});
有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

当您点击按钮链接(使用链接)时,他们会在视图页面上重定向,以防止您使用

$('#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来渲染视图