在网格操作上调用函数coumn点击

时间:2016-10-05 11:42:42

标签: jquery ajax yii2

我在yii中有一个网格,其中有一个带有自定义按钮的操作列我想在单击网格按钮时调用函数但是我收到错误

这是我的代码:

[
        'class' => 'kartik\grid\ActionColumn',
        'template' => '{approve}{new}{reject}',
        'buttons' => [
            'approve' => function ($url, $model) {
                return Html::button('<i class="fa fa-check"></i>', ['value' => Url::to('approvetruck?id='.$model->id),'style' =>'background:none;border:none;','id' => 'approve','onclick'=>'alert('.$model->id.')']);
        },
            'reject' => function ($url, $model) {
                return Html::button('<i class="fa fa-close"></i>',  ['value' => Url::to('checktruck?id='.$model->id."&category=1"),'style' =>'background:none;border:none;', 'onclick'=>'reject('.$model->id.')');
            },

        ],
        'dropdown' => false,
        'vAlign' => 'middle',
        'urlCreator' => function ($action, $model, $key, $index) {
            return '#';
        },


        'deleteOptions' => ['label' => '<i class="glyphicon glyphicon-remove"></i>']
    ]

我有网格后(在同一页面上)

<?php
$script = <<< JS
 function reject(id) {
   alert(id);

 }

 JS;
$this->registerJs($script);
 ?>

第一个批准执行警报工作,但调用函数拒绝的拒绝失败.. 它返回错误Uncaught ReferenceError: reject is not defined

我该怎么做

1 个答案:

答案 0 :(得分:2)

似乎你必须使用下面的代码来注册js

<?php 

$this->registerJs(' 
    function reject(id) {
    alert(id);
    }', \yii\web\VIEW::POS_HEAD); 
?> 

将在头部添加js,它可能会得到你定义的函数