我有一个GridView
,在我的ActionColumn
中,每行都有一个“查看工资单”按钮。如果用户尚未创建任何薪资单,将会看到“创建薪资单”而不是“查看薪资单”。我在GridView
之外还有一个名为“Approve Payslips”的按钮。默认情况下,此按钮处于禁用状态,仅当所有按钮指示“查看薪资单”时才会启用此按钮。
PHP
这是“Approve Payslips”按钮的代码:
<?php echo Html::button('Approve Payslips', ['value' => 'approve-w', 'class' => 'btn btn-warning btn-responsive approve-w', 'style' => 'display:none', 'onclick'=>'approveWeekly(value)']); ?>
的JavaScript
我尝试了这个,但它不起作用,因为它传递了一个ID,我有多个值传递:
function approveWeekly(id){
$.ajax({
url: 'index.php?r=periods/approveweekly',
dataType: 'json',
method: 'GET',
data: {id : id},
success: function (data, textStatus, jqXHR) {
$.pjax.reload({container:'#w_gridview'});
},
error: function (jqXHR, textStatus, errorThrown) {
alert("error");
}
});
}
也尝试了这个,但它没有再次工作,因为我刚从“电子邮件选择的薪资单”按钮获取此代码(查看上面的照片):
function approveBiMonthly(){
var keylist = $('#b_gridview').yiiGridView('getSelectedRows');
//alert(keylist);
keylist = '\''+keylist+'\'';
$.ajax({
url: 'index.php?r=periods/approvebimonthly', // your controller action
dataType: 'json',
method: 'GET',
data: {keylist: keylist},
success: function (data, textStatus, jqXHR) {
//alert(keylist);
},
error: function (jqXHR, textStatus, errorThrown) {
alert('error');
}
});
}
任何人都有任何想法或知道如何实现这种功能?我不知道在jQuery
代码中放什么了。我只是个新手。希望有人可以提供帮助。
答案 0 :(得分:0)
我认为您正在混合行数据操作(“查看薪资单”和“创建薪资单”),以及多行操作(“批准薪资单”)。由于您在网格外部有“批准薪资单”,我假设您要批准在网格中选择的所有行,对吧?
这是一个可能的解决方案,并使用Yii2提供的jQuery。
<强>假设强>
我假设您使用[yii\grid\CheckboxColumn]
(api link)来生成CheckBox列。
<强>的JavaScript 强>
添加以下功能,一次性批准多个ID:
function approveSelected(selectedRows){
for (var i = 0; i < selectedRows.length; i++) {
approveWeekly(selectedRows[i]);
}
}
PHP代码
然后你的PHP调用将改为使用上面的新函数:
<?php echo Html::button('Approve Payslips', ['value' => 'approve-w', 'class' => 'btn btn-warning btn-responsive approve-w', 'style' => 'display:none', 'onclick'=>'approveSelected($("#grid").yiiGridView("getSelectedRows"))']); ?>
<强>旁注强>
如果您对获取当前页面上显示的全部 GridView模型感兴趣,可以使用以下代码 PHP 代码访问它们:
$dataProvider->getModels()
的链接
答案 1 :(得分:0)
尝试查看此帖子。 checkboxColumn 但这只能返回 1值。我不知道如何获得所有价值......
这是我目前的最大问题。我还要弄清楚如何获得所有价值......
除了这一个解决方案: 您可以使用该代码获取所有值并返回所需的ID,然后您可以查询模型并返回所有连接的数据....这不适用于我的系统/代码。< / p>
我希望这有帮助。