Php 表单选择查询输出-数组

Php 表单选择查询输出-数组,php,html,forms,url,select,Php,Html,Forms,Url,Select,我希望我的select表单像这样返回查询 http://myexamplesite.com/store/?brand=nike+adidas+woodland 但它又回来了 http://myexamplesite.com/store/?brand=nike&brand=adidas&brand=woodland brand%5B0%5D=adidas&brand%5B0%5D=nike 我必须对表格做什么样的更改 我尝试设置select-name=brand[]n

我希望我的select表单像这样返回查询

http://myexamplesite.com/store/?brand=nike+adidas+woodland
但它又回来了

http://myexamplesite.com/store/?brand=nike&brand=adidas&brand=woodland
brand%5B0%5D=adidas&brand%5B0%5D=nike
我必须对表格做什么样的更改

我尝试设置select-name=brand[]name=brand[0] 但它又回来了

http://myexamplesite.com/store/?brand=nike&brand=adidas&brand=woodland
brand%5B0%5D=adidas&brand%5B0%5D=nike

表单选择元素位于for-each循环中

您可以将jquery添加到该循环中,就像只需获取选择框中的值并使用+连接运算符对其进行连接一样。这是你能做的最好的了。
另一种解决方案是在服务器端执行。

您可以向其中添加jquery,就像只需获取选择框中的值,然后使用+连接运算符对其进行连接一样。这是你能做的最好的了。 另一个解决方案是在服务器端执行。

您可以执行的操作:

创建一个名为brand的隐藏表单输入 将您的选择重命名为其他名称,例如品牌选择 截取表单submit和onsubmit,构造正确的字符串并将其作为品牌输入的值 禁用品牌选择输入,使其不会发送到服务器 最后提交表格 我举了一个简单的例子:

HTML:

当您在Codepen上提交表单时,您将看到postman echo显示提交的args:args:{brand:nike+adidas+woodland}。您还可以使用devtools中的“网络”选项卡来检查它提交到的url。在这种情况下,它是: https://postman-echo.com/get?brand=nike%2Badidas%2Bwoodland 因此,品牌的URL解码价值是nike+阿迪达斯+woodland

你可以做什么:

创建一个名为brand的隐藏表单输入 将您的选择重命名为其他名称,例如品牌选择 截取表单submit和onsubmit,构造正确的字符串并将其作为品牌输入的值 禁用品牌选择输入,使其不会发送到服务器 最后提交表格 我举了一个简单的例子:

HTML:

当您在Codepen上提交表单时,您将看到postman echo显示提交的args:args:{brand:nike+adidas+woodland}。您还可以使用devtools中的“网络”选项卡来检查它提交到的url。在这种情况下,它是:
https://postman-echo.com/get?brand=nike%2Badidas%2Bwoodland 因此,品牌的URL解码值是nike+adidas+woodland

您可以像这样使用JQuery,myselect是select标签的id

var qstring="http://myexamplesite.com/store/?brand=";
$("#myselect :selected").each(function(i,item)
{ 
    qstring=qstring+"+"+$(item).val(); 

});

您可以像这样使用JQuery,myselect是select标记的id

var qstring="http://myexamplesite.com/store/?brand=";
$("#myselect :selected").each(function(i,item)
{ 
    qstring=qstring+"+"+$(item).val(); 

});

只需将PHP中的值内爆:$brands=is_array$\u GET['brand']?内爆“+”,$获取['brand']:$获取['brand'];你所在领域的名称是什么?你有一个字段还是多个字段?@Nick,谢谢你,我正在使用WordPress,所以我们有一个方法get\u query\u var而不是$\u get@kmoser它的多字段选择只是在PHP中内爆值:$brands=is\u array$\u get['brand']?内爆“+”,$获取['brand']:$获取['brand'];你所在领域的名称是什么?你有一个字段还是多个字段?@Nick,谢谢。我正在使用WordPress,所以我们有一个方法get\u query\u var,而不是$\u get@kmoser的多字段选择谢谢!我在cosole中遇到一个错误:uncaughttypeerror:无法设置的属性“onsubmit”null@LatheeshVMVilla表单id必须与document.getElementById'form'中的id匹配;因此,请确保表单具有id=form属性。另外,请尝试我制作的codepen示例,它应该是开箱即用的:实际上,它在我的查询之外添加了一个品牌字符串查询:-paste.ofcode.org/tr6ZNMN6hyf3PsWhaSZAHv@LatheeshVMVilla您使用上述示例是错误的。您必须将原始选择重命名为品牌选择,并且不会提交。我修改了上面的代码,它现在可以工作了:paste.ofcode.org/ary8ilj4wkderqaywxmijpb但它会生成一个查询字符串,如:brand select=8&brand select=2&brand=Thank you!我在cosole中遇到一个错误:uncaughttypeerror:无法设置的属性“onsubmit”null@LatheeshVMVilla表单id必须与document.getElementById'form'中的id匹配;因此,请确保表单具有id=form属性。另外,请尝试我制作的codepen示例,它应该是开箱即用的:实际上,它在我的查询之外添加了一个品牌字符串查询:-paste.ofcode.org/tr6ZNMN6hyf3PsWhaSZAHv@LatheeshVMVilla您使用上述示例是错误的。您必须将原始选择重命名为品牌选择,并且不会提交。我修改了上面的代码,它现在可以工作了:paste.ofcode.org/ary8ilj4wkderqaywxmijpb但它会生成一个查询字符串,如:brand select=8&brand select=2&brand=