从没有页面加载的下拉列表中获取选定的值

时间:2017-04-17 07:49:47

标签: php jquery ajax forms

我有一个包含多个过滤器的页面来搜索数据库中的数据。它在主搜索表单之外的页面末尾有一个视图限制下拉列表。视图限制会询问用户在单个页面上需要多少条记录。当用户选择记录限制时,ajax会使用所选限制加载结果,现在当用户(第1页上的用户)单击下一页按钮以查看第2页上的recrods时,视图限制下拉列表会将自身重置为默认值,例如,有60个产品供他搜索,他在第1页上选择了每页20条记录,当他转到第2页时,视图限制下拉列表将在下一页的视图限制下拉列表中显示10而不是20。我希望他在第一页上选择的下一页的视图限制值,即10。

<div class="view-limit">
                View:&nbsp; <select name="view-limit" id="view-limit" class="form-control" style="display:inline-block;">
                    <option value="10">10</option>
                    <option value="20">20</option>
                    <option value="30">30</option>
                    <option value="50">50</option>
                    <option value="100">100</option>
                </select>
            </div>

这是我的视图限制html,我不希望将其包含在表单中并使用搜索过滤器发送此数据。有没有办法在没有提交表单的情况下将这些数据发送到下一页?我尝试使用URL中的变量发送它,但我无法获得变量中的视图限制值,直到任何请求被发送到服务器。

2 个答案:

答案 0 :(得分:1)

如果您正在调用AJAX来获取数据,那么您可以使用表单数据传递它,例如

data:$('form').serialize()+'&limit='+$('#view-limit').val(),
...

您必须再次将view-limit传递给您的HTML内容

例如,您在PHP页面中获得view-limit,如

$limit=$_REQUEST['limit']; // you can use $_POST if post method is used

然后,在HTML页面上传递此变量并选择选项,请尝试以下代码

<div class="view-limit">
   View:&nbsp; <select name="view-limit" id="view-limit" class="form-control" style="display:inline-block;">
      <option value="10" <?php echo ($limit==10?'selected="selected"':'')?>>10</option>
      <option value="20" <?php echo ($limit==20?'selected="selected"':'')?>>20</option>
      <option value="30" <?php echo ($limit==30?'selected="selected"':'')?>>30</option>
      <option value="50" <?php echo ($limit==50?'selected="selected"':'')?>>50</option>
      <option value="100" <?php echo ($limit==100?'selected="selected"':'')?>>100</option>
   </select>
</div>

答案 1 :(得分:0)

我想出了通过URL将变量传递到下一页的方法 我是这样做的:

$(document).on("click","#pager",function(e) {
    e.preventDefault();
    location.href = this.href +'?view='+ escape($('#view-limit').val());
    return false;
});

pager是用户想要转到下一页时单击链接htat的ID