【问题标题】:PHP - Retrieving $_GET variable after submitting form and change URLPHP - 提交表单并更改 URL 后检索 $_GET 变量
【发布时间】:2017-03-11 21:11:20
【问题描述】:

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

<div class="top-filter-select-container">
    <form method="GET" action="" id="sort-filter-pick">
        <select class="selectpicker" 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>

当使用 jQuery form.submit() 选择一个选项时,我试图重新加载我的页面,并检索所选选项以用于使用 SQL 查询进行过滤。我最终希望将此值与其他过滤值一起用于更复杂的过滤。

$(function(){
    $('#sort-filter').on('change', function() {
        var action = $(this).val();
        $("#sort-filter-pick").attr("action", "?sort=" + action);
        this.form.submit();
    }); 
});

为了测试我的代码,我只是想echo isset($_GET['sort']) ? $_GET['sort'] : null;

如果我将form method 更改为POST 而不是GET,则代码有效,但不适用于GET。在亚马逊等网站上,在从选择选项应用过滤器时使用GET form 方法,但我也注意到?sort=... 在提交表单后添加到页面URL,情况并非如此如果我使用GET,对我来说。我想知道做同样事情的正确方法是什么。

【问题讨论】:

  • GET 的值不会在表单正文中传递,它们作为 url 参数传递
  • 那么如何将我的操作添加到 URL 中?我想这是我的主要问题
  • 在 onchange 事件中执行 ajax 请求或重新加载页面
  • 因为选择框没有名称属性,所以无法正常工作
  • Ryan,这不是$("#sort-filter-pick").attr("action", "?sort=" + action); 应该做的吗?

标签: php forms post get


【解决方案1】:

如果您向表单元素添加“名称”,则无需使用 jQuery 手动添加排序标准。

HTML:

<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>

Javascript:

$(function(){
    $('#sort-filter').on('change', function() {
        this.form.submit();
    }); 
});

或者您可以只使用location.href = url 而不是发布表单。

【讨论】:

  • 工作非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-01-01
  • 2015-08-14
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多