gpt4 book ai didi

javascript - 使用多个复选框的数据表数据过滤(服务器端)

转载 作者:行者123 更新时间:2023-11-30 19:59:00 25 4
gpt4 key购买 nike

我使用带有服务器端处理的数据表来显示数万行。我需要通过复选框过滤这些数据。我能够制作一个工作正常的复选框,但我不知道如何添加多个复选框以协同工作。我找到了 similar solution在这里,但我的技能不允许我根据我的需要修改它:(这是我试过的..

我的 index.php:

Statuses:<br>
<input type="checkbox" id="0" onclick="myCheckFunc()" name="statuses">Open<br>
<input type="checkbox" id="1" onclick="myCheckFunc()" name="statuses">Closed<br>
<input type="checkbox" id="2" onclick="myCheckFunc()" name="statuses">Solved<br>

<script>
var idsa = 5;
$('input[name=statuses]').click(function(){
idsa = [];
$('input[name=statuses]:checked').each(function() {
idsa.push($(this).attr('id'));
});
idsa = idsa.join(",");
console.log("idsa fcia: " + idsa);
$('#example').DataTable().ajax.reload();
});
</script>

idsa 变量最初设置为 5,这意味着所有状态(未选中复选框)然后使用它的 format(d) 函数发送到服务器端脚本(这部分工作正常)。这是我在服务器端脚本中修改 sql 查询的方式:

if ($_GET['idsa'] == 5){
$idsa = "0,1,2";
} else { if (isset($_GET['idsa'])) {
$idsa = "('" . str_replace(",", "','", $_GET['idsa']) . "')"; }
}
$whereAll = "STATUS IN ($idsa)";

编辑:现在单击这三个复选框中的第一个后,数据将被正确过滤(打开状态为 0 的工单),但取消选中不会带回所有数据的初始状态。当我点击其他两个时,数据会被过滤,但当我取消选中时,数据会先过滤(打开)。当我单击两个或多个复选框时,出现此错误:

An SQL error occurred: SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)

最佳答案

好的,这是工作代码:

Status:<br>
<input type="checkbox" id="0" name="statuses">Open<br>
<input type="checkbox" id="1" name="statuses">Closed<br>
<input type="checkbox" id="2" name="statuses">Solved<br>

<script>
var idsa = 5;
$('input[name=statuses]').click(function(){
idsa = [];
$('input[name=statuses]:checked').each(function() {
idsa.push($(this).attr('id'));
});
idsa = idsa.join(",");
console.log("idsa fcia: " + idsa);
if (idsa == '') {
idsa = 5;
}
$('#example').DataTable().ajax.reload();
});
</script>

在服务器端脚本中:

if ($_GET['idsa'] == 5){
$idsa = "0,1,2";
} else {
$idsa = $_GET['idsa'];
}
$whereAll = "STATUS IN ($idsa)";

问题出在我从别人那里抓取的服务器端部分,并添加了另一个逗号。现在它工作正常。非常感谢您的宝贵时间。

关于javascript - 使用多个复选框的数据表数据过滤(服务器端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53608406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com