【发布时间】:2018-07-08 09:46:28
【问题描述】:
我陷入了困境。我想在动态过滤器上创建查询字符串。现在我已经添加到过滤器类型Select your favorite sports 和Select your favorite food: .. 所以将来会有更多的过滤器,它只会出现在复选框类型和选择框中。所以我想让它完全动态。这是我的html代码:-
<body>
<select class="getfilterchange" name="hobby">
<option value="">Select</option>
<option value="Chess">Chess</option>
<option value="Hockey">Hockey</option>
</select>
<h3>Select your favorite sports:</h3>
<label><input class="getfilter" type="checkbox" value="football" name="sport"> Football</label>
<label><input class="getfilter" type="checkbox" value="baseball" name="sport"> Baseball</label>
<label><input class="getfilter" type="checkbox" value="cricket" name="sport"> Cricket</label>
<label><input class="getfilter" type="checkbox" value="boxing" name="sport"> Boxing</label>
<label><input class="getfilter" type="checkbox" value="racing" name="sport"> Racing</label>
<label><input class="getfilter" type="checkbox" value="swimming" name="sport"> Swimming</label>
<br>
<h3>Select your favorite food:</h3>
<label><input class="getfilter" type="checkbox" value="choclate" name="food"> Choclate</label>
<label><input class="getfilter" type="checkbox" value="biscuits" name="food"> Biscuits</label>
<label><input class="getfilter" type="checkbox" value="candy" name="food"> Candy</label>
<label><input class="getfilter" type="checkbox" value="Cake" name="food"> Cake</label>
<br>
</body>
在这里我尝试了一些 jquery 代码:-
<script type="text/javascript">
$(document).ready(function() {
var names = [];
$(".getfilter").click(function(){
if(jQuery.inArray($(this).attr('name'), names )=='-1'){
names.push($(this).attr('name'));
}
var favorite = [];
$.each($("input[name='"+$(this).attr('name')+"']:checked"), function(){
favorite.push($(this).val());
});
console.log(names);
console.log(favorite);
});
});
我的预期输出如下所示
?sport=football~baseball~cricket&food=choclate~biscuits
如果用户首先选择了食物,那么它应该是这样的:-
?food=choclate~biscuits&sport=football~baseball~cricket
请帮助我如何实现这种功能 注意:- 我的过滤器将是动态的,意味着如果我添加更多过滤器,它将自动嵌入到查询字符串中。 在图像中,它显示了 Getvalues 按钮。我想在单击复选框时获取查询字符串。忘记没有按钮。谢谢
【问题讨论】:
-
只需使用表单作为控件的容器和
.serialize()方法。 -
是的,seralize 是个好方法,但我希望将查询字符串添加到 url 中
-
有什么问题?您可以使用表单序列化创建查询字符串,然后使用字符串连接将查询字符串添加到 url。
-
你能以我的问题为例发表你的答案吗?
-
巧克力*.....
标签: javascript php jquery query-string