我有一个包含多个选项的表单,我在提交表单时得到的网址是这样的:
tld.com/?var1=opt1$var1=opt2&var1=opt3&var2=opt1&var2=opt2
我想知道的网址是:
tld.com/?var1=opt+opt2+opt3&var2=opt1+opt2
我不想将$ _POST方法与存储在数组中的选项一起使用,因为我希望网址对于任何自定义搜索都是唯一的。
表单看起来像这样:
<form action="" method="get">
<select name="var1" multiple="multiple">
<option value="var1">one</option>
<option value="var2">two</option>
<option value="var3">three</option>
<option value="var4">four</option>
<option value="var5">five</option>
</select>
<select name="var2" multiple="multiple">
<option value="var1">one</option>
<option value="var2">two</option>
<option value="var3">three</option>
<option value="var4">four</option>
<option value="var5">five</option>
</select>
<input type="submit" value="Send" />
</form>
答案 0 :(得分:1)
您可以尝试在客户端构建2个阵列并通过表单发布它,但是在服务器端您将获得2个阵列并且无论如何都可以从中生成对。你真的需要吗?
这就像是
$("#myForm").submit(function(){
var myKeys = new Array();
var myValues = new Array();
$("#myForm input").each(function(n,element){
myKeys[] = $(element).attr("name");
myValues[] = $(element).val();
});
$("#hiddenInput").attr("name", myKeys.join('+'));
$("#hiddenInput").attr("value", myValues.join('+'));
return true;
});
您将获得网址?name1+name2+name3=value1+value2+value3
UPD:只需在名称属性中使用[]
:
<input name="var1[]" value="param1">
<input name="var1[]" value="param2">
您将获得/?var1=param1+param2