我想使用以下表单来过滤我网站上的产品:
form.submit()
我正在尝试使用jQuery $(function(){
$('#sort-filter').on('change', function() {
var action = $(this).val();
$("#sort-filter-pick").attr("action", "?sort=" + action);
this.form.submit();
});
});
选择一个选项时重新加载我的页面,并检索用于使用SQL查询进行过滤的选定选项。我最终希望将此值与其他过滤值一起使用,以进行更复杂的过滤。
echo isset($_GET['sort']) ? $_GET['sort'] : null;
要测试我的代码,我只是尝试form method
如果我将POST
更改为GET
而不是GET
,但不能与GET
一起使用,则代码有效。在亚马逊等网站上,从select选项应用过滤器时会使用?sort=
表单方法,但我也注意到在提交表单后将GET
...添加到页面URL中,如果我使用{{1}},则不是我的情况。我想知道做同样事情的正确方法是什么。
答案 0 :(得分:1)
如果向表单元素添加“名称”,则无需使用jQuery手动添加排序条件。
HTML:
User.class
使用Javascript:
<div class="top-filter-select-container">
<form method="GET" action="" id="sort-filter-pick">
<select class="selectpicker" name="sort" id="sort-filter">
<option value="popularity">Sort by Popularity</option>
<option value="ratings">Sort by Ratings</option>
<option value="newest">Sort by Newest</option>
<option value="lowest">Sort by Lowest Price</option>
</select>
</form>
</div>
或者您可以使用$(function(){
$('#sort-filter').on('change', function() {
this.form.submit();
});
});
而不是发布表单。