gpt4 book ai didi

php - 如何使用同名的多个复选框自定义查询字符串?

转载 作者:行者123 更新时间:2023-12-01 03:38:37 25 4
gpt4 key购买 nike

我有一个带有 get 方法的表单,用于从数据库中搜索项目(车辆)。该表单有多个复选框集。类似用户可以通过从品牌复选框列表中选择多个品牌来过滤搜索结果。同样,用户还可以从车型选择框列表等中对车型应用过滤器。表单上大约有 10 个这样的过滤器。

这是我的表单的代码片段:

<form action='./search' method='get'>

<input type='checkbox' name='make[]' value='BMW'/>
<input type='checkbox' name='make[]' value='Mercedes'/>
<input type='checkbox' name='make[]' value='Honda'/>
<input type='checkbox' name='make[]' value='Toyota'/>
<input type='checkbox' name='make[]' value='Porsche'/>

......//Remaining Form
</form>

同样,对于汽车模型,我有类似的标记...有这样 10 个过滤器,全部使用复选框列表实现。

现在解决问题,当我提交表单时,我得到如下 URL:

http://localhost/auto/search?make=BMW&make=Mercedes&make=Honda

这正在形成一种我不喜欢的查询字符串,即它会为所有检查的值重复“make”属性,并且也会对其余 9 个过滤器重复使用“make”属性。这将导致 URL 看起来很长且难看。

我想要的是我的 URL 应如下所示:

http://localhost/auto/search?make=BMW,Mercedes,Honda

这好多了,但我不知道如何实现这一点。我尝试的是获取复选框的所有值,然后将它们写入隐藏字段值,以便我在查询字符串中获得所需的格式。并取消设置用户选择的所有复选框,并提交包含所有选择的隐藏字段的表单。但问题是,当提交表单时,我在 URL 中得到两个“make”字段,例如:

http://localhost/auto/search?make=&car_makes=BMW,Mercedes,Honda

其中 car_makes 是隐藏的输入字段,我在其中写入了 value 属性中的所有选择。

有什么解决办法吗?因此 make 属性不会被提交,但它会被提交,因为它是表单的一部分。

谢谢。

最佳答案

尝试这些:

<html>
<head>
<script type="text/javascript">
function buildup(){
var makes=document.getElementsByName('make[]');
var m=document.getElementById('make');
m.value='';
ms='';
for (var i = makes.length - 1; i >= 0; i--) {
if(i>0)ms=ms+',';
ms=ms+makes[i].value;
}
m.value=ms;
document.getElementById('form').submit();
}
</script>
</head>
<body>

<input type='checkbox' name='make[]' value='BMW'/>
<input type='checkbox' name='make[]' value='Mercedes'/>
<input type='checkbox' name='make[]' value='Honda'/>
<input type='checkbox' name='make[]' value='Toyota'/>
<input type='checkbox' name='make[]' value='Porsche'/>

<form action='./search' id='form' method='get'>

<input type='hidden' name='make' id='make'>

<input type='button' value='submit' onclick='buildup()'>

</form>

</body>

关于php - 如何使用同名的多个复选框自定义查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656477/

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