我有一个包含多个过滤器的页面来搜索数据库中的数据。它在主搜索表单之外的页面末尾有一个视图限制下拉列表。视图限制会询问用户在单个页面上需要多少条记录。当用户选择记录限制时,ajax会使用所选限制加载结果,现在当用户(第1页上的用户)单击下一页按钮以查看第2页上的recrods时,视图限制下拉列表会将自身重置为默认值,例如,有60个产品供他搜索,他在第1页上选择了每页20条记录,当他转到第2页时,视图限制下拉列表将在下一页的视图限制下拉列表中显示10而不是20。我希望他在第一页上选择的下一页的视图限制值,即10。
<div class="view-limit">
View: <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中的变量发送它,但我无法获得变量中的视图限制值,直到任何请求被发送到服务器。
答案 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: <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