YII2 Gridview不返回所选行(未捕获的TypeError:无法读取未定义的yii.Gridview.js:140的属性“selectionColumn”)
我试图通过post从gridview传递一个包含选定键的数组,但我总是得到相同URL的错误:YII2 Gridview不返回所选行(未捕获的TypeError:无法读取未定义的yii.Gridview.js:140的属性“selectionColumn”),yii2,yii2-advanced-app,yii2-user,Yii2,Yii2 Advanced App,Yii2 User,我试图通过post从gridview传递一个包含选定键的数组,但我总是得到相同URL的错误: POST http://localhost/cngrx/web/index.php/ponenciaresumen/[object%20Object] 404 (Not Found) 似乎Generate代码总是这样:path/myController/[object%20Object] 不管我设置哪个url,代码生成器总是相同的url,这不是我需要的。我的代码是: <script>
POST http://localhost/cngrx/web/index.php/ponenciaresumen/[object%20Object] 404 (Not Found)
似乎Generate代码总是这样:path/myController/[object%20Object]
不管我设置哪个url,代码生成器总是相同的url,这不是我需要的。我的代码是:
<script>
$(document).ready(function(){
$('#MyButton').click(function(){
var keys = $('#w1').yiiGridView('getSelectedRows');
$.post({
url: 'myController/myAction',
dataType: 'json',
data: {keylist: keys}
});
});
});
</script>
谢谢你的进步 见
需要类yii\grid\CheckboxColumn
var keys=$'grid'.yiiGridView'getSelectedRows'
我认为当你把网格放入pjax容器时会发生这种情况 如果您不使用Pjax,那么应该使用元素id w1而不是网格 Yii2渲染此脚本 jQuery(document).ready(function () { jQuery('#modal-upload').modal({"show":false}); jQuery('#w0').yiiGridView({"filterUrl":"/advanced/backend/web/index.php?r=state%2Findex","filterSelector":"#w0-filters input, #w0-filters select"}); jQuery('#w1').yiiGridView({"filterUrl":"/advanced/backend/web/index.php?r=state%2Findex","filterSelector":"#w1-filters input, #w1-filters select"}); jQuery('#w1').yiiGridView('setSelectionColumn', {"name":"selection[]","multiple":true,"checkAll":"selection_all"}); jQuery('#w2').yiiGridView({"filterUrl":"/advanced/backend/web/index.php?r=state%2Findex","filterSelector":"#w2-filters input, #w2-filters select"}); });
查看代码源代码,并检查复选框的id是否为w1或w0。。默认情况下,我使用的是“w0”,我可以修复我的问题:
var keys = $('#w0').yiiGridView('getSelectedRows');
什么是ponenciaresumen?什么是[object%20Object]?在AppAsset.php上,添加以下属性:public$jsOptions=['position'=>\yii\web\View::POS\u HEAD];因此jQuery将在页面的开头加载。然后,如果您正在使用PJAX,请将选择器更改为$'.grid view',而此代码可能会回答此问题,并提供有关此代码为什么和/或如何回答此问题的附加上下文,以提高其长期价值。不鼓励只使用代码的答案。
$script = '
jQuery(document).ready(function() {
btnCheck = $("#btn-check");
btnCheck.click(function() {
var keys = $("#w2").yiiGridView("getSelectedRows");
alert(keys);
$.ajax({
type: "POST",
url: "'.\yii\helpers\Url::to(['/controller/action']).'",
dataType: "json",
data: {keylist: keys}
});
});
});';
$this->registerJs($script, \yii\web\View::POS_END);
var keys = $('#w0').yiiGridView('getSelectedRows');
$('#MyButton').click(function(){
var keys = $('#w0').yiiGridView('getSelectedRows');
$.post("index.php?r=myController/myAction", {keylist: keys}, function(result){
$("span").html(result);
});
});