Вызов функции при выполнении действия в сетке по щелчку мыши

#jquery #ajax #yii2

#jquery #ajax #yii2

Вопрос:

У меня есть сетка в yii, в которой есть столбец действия с пользовательской кнопкой, я хотел бы вызвать функцию при нажатии кнопки сетки, но я получаю сообщение об ошибке

Это мой код:

 [
        'class' => 'kartikgridActionColumn',
        '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."amp;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. эй, ДЖЕФФРИ МВАНГИ, попробуйте ответить, который я опубликовал.

Ответ №1:

Кажется, вам нужно использовать приведенный ниже код для регистрации js

 <?php 

$this->registerJs(' 
    function reject(id) {
    alert(id);
    }', yiiwebVIEW::POS_HEAD); 
?> 
  

это добавит js в головную часть, и он может получить функцию, которую вы определили