是否可以通过选中位于DataTable顶部的复选框来检索所有记录?我的意思是我想添加一个复选框,如果用户检查它,它会通过AJAX将参数(例如bool isAll)传递给Controller,并通过更改搜索查询根据isAll参数获取记录。我在Offical Documentation看了许多不同的部分,但似乎没有这个功能。它如下所示。有什么想法吗?
答案 0 :(得分:1)
如果你的HTML看起来像这样:
<table>
<thead>
<tr>
<th><input type="checkbox" onClick="checkAll(this)"></th>
<th >x</th>
<th >y</th>
<th >z</th>
</tr>
</thead>
<tbody>
</tbody>
我会做这样的事情来检查名为myCheckBox的所有'复选框':
function checkAll(x) {
checkboxes = document.getElementsByName('myCheckBox');
for(var i=0, n=checkboxes.length; i<n; i++) {
checkboxes[i].checked = x.checked;
}
}
然后,如果你想把它作为字符串发送到你的AJAX:
function getCheckedBoxes(chkboxName) {
var checkboxes = document.getElementsByName(chkboxName);
var checkboxesChecked = [];
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].checked) {
checkboxesChecked.push({"ID":checkboxes[i].value});
}
}
return checkboxesChecked.length > 0 ? checkboxesChecked : null;
}
var checkedBoxes = getCheckedBoxes("cluster_checkbox");
var data = JSON.stringify(checkedBoxes);
然后在你的AJAX中使用字符串调用var数据:
$.ajax({type : "POST",
url : "/new_custCluster.php",
data: {'IDs': data},
}).done(function(result) {
alert("Success");
}).fail(function() {
alert("Failure");
});