从Javascript复选框到PHP和SQL的一周多日选择

从Javascript复选框到PHP和SQL的一周多日选择,php,string,checkbox,connection-string,Php,String,Checkbox,Connection String,是否有一种快速而优雅的方法可以从Javascript复选框中选择一周中的一天或多天,将其移动到PHP,并在处理后相应地从SQL中获取查询,在PHP端选中哪些复选框?例如,如果我选中了周一和周三,extract(dow from timestamp)=1或extract(dow from timestamp)=3应添加到PHP端的我的查询字符串中- 我以前用C++/Qt实现过一个快速而肮脏的解决方案——在我的这个问题上: 然后得到了一个显示最短路径的答案——现在我想知道,在PHP中是否可以使用类

是否有一种快速而优雅的方法可以从Javascript复选框中选择一周中的一天或多天,将其移动到PHP,并在处理后相应地从SQL中获取查询,在PHP端选中哪些复选框?例如,如果我选中了周一和周三,
extract(dow from timestamp)=1或extract(dow from timestamp)=3
应添加到PHP端的我的查询字符串中-

我以前用C++/Qt实现过一个快速而肮脏的解决方案——在我的这个问题上:


然后得到了一个显示最短路径的答案——现在我想知道,在PHP中是否可以使用类似的方法来实现这一点。

如果给出了复选框,那么实现这一点的方法就不多了。实际上总是一样的:读取所选复选框的值并使用它们构建查询字符串

示例(当然可以使用jQuery等工具更轻松地完成…):

var checkbox=document.getElementById(“复选框”).getElementsByTagName(“输入”),
查询=[];
对于(变量i=0,l=checkbox.length;i0){
//删除最后一个“或”
query=query.slice(0,-1);
}
//加入“字符串生成器”数组以获取最终查询字符串
query=query.join(“”);
console.log(查询);


我不太明白为什么要用JavaScript来构建字符串;SQL在服务器端运行,那么为什么不将值发送到服务器并在那里创建查询字符串呢?

我应该更清楚一些。实际上,我使用了一个PHP后端,我想知道我是否可以检查Javascript复选框的状态,并在那里准确地构建查询字符串(在PHP中),然后调用SQL查询-PHP获取Ajax.POST,然后调用与输入相关的查询,找到了从PHP端获取checkbox checked/not checked值的方法,我想我可以从这里处理它。谢谢你给小费的回答。好的,谢谢你接受我的回答我只想补充一点:如果您使用AJAX,请按照我上面的建议阅读复选框值,并将数组发送给PHP进行评估。但是,如果将表单与常规的
submit
操作一起使用,请在复选框中添加名称属性,如
days[]
(注意方括号)。然后可以在PHP中以数组的形式访问这些值。
var checkboxes = document.getElementById("checkboxes").getElementsByTagName("input"),
    query = [];
for (var i = 0, l = checkboxes.length; i < l; ++i) {
    // Get value of each selected checkbox and build the query string
    if (checkboxes[i].checked) {
        query.push("extract(dow from timestamp) = ", checkboxes[i].value, " or ");
    }
}
if (query.length > 0) {
    // Remove last "or"
    query = query.slice(0, -1);
}
// Join "string builder" array to get the final query string
query = query.join("");
console.log(query);