PHP - 提交表单并更改URL后检索$ _GET变量

时间:2017-03-11 21:11:21

标签: php forms post get

我想使用以下表单来过滤我网站上的产品:

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}},则不是我的情况。我想知道做同样事情的正确方法是什么。

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(); }); }); 而不是发布表单。