我有一个加载了ajax帖子的分页列表,所以如果我使用分页链接(更进一步或者后退),它会重新加载页面以通过get发送页码。
我正在寻找一种使用分页链接发送相同变量(来自ajax帖子)的方法,但我想保留带有get(?page=x
)的url。有没有办法做到这一点?
我不想使用全局或会话变量(不安全)。
有什么建议吗?
当我点击搜索时,这就是触发的内容:
$('body').on('click', '.click, .pag_link', function() { // search button and change page
if($(this).is('.click'))
var url = '/search';
else {
if ($(this).text() == '«')
var url = '/search?page=' + (parseInt($('.active').text()) - 1);
else if ($(this).text() == '»')
var url = '/search?page=' + (parseInt($('.active').text()) + 1);
else
var url = '/search?page=' + parseInt($(this).text());
}
if ($('#res_prop').is(':checked')) {
var prop_type = $('#res_prop').val(),
checkbox = '#res_prop';
}
else if ($('#com_prop').is(':checked')) {
var prop_type = $('#com_prop').val(),
checkbox = '#com_prop';
}
else {
$('p.error').show();
die();
}
$.ajax({
method: 'POST',
url: url,
data: {
'do': getUrlParameter('do'),
'prop_type': prop_type,
'city': $('select[name="city"]').val(),
'zone': $('select[name="zone"]').val()
}
}).done(function(data) {
var new_content = $(data).find('#search');
$( "#search" ).html( new_content );
alert(url);
if ($(checkbox).length > 0)
$(checkbox).prop('checked', true);
});
return false;
});
Ajax加载一个列表,并在底部加入分页,如果我单击下一个/一个数字,则页面重新加载以发送get参数,页面从头开始(我必须再次单击搜索)。
答案 0 :(得分:2)
您可以尝试这样的事情。这只是一个伪代码,但应该让你知道如何处理。
var page;
$("input:button, a").on("click",function()
{
page = !$(this).is("input:button") ? "?page=" + parseInt($(this).text()) + "" : "";
$.ajax({
method: "POST",
url: "/search" + page,
data: {
'do': getUrlParameter('do'),
'prop_type': prop_type,
'city': $('select[name="city"]').val(),
'zone': $('select[name="zone"]').val()
}
}).done(function(data) {
var new_content = $(data).find('#search');
$( "#search" ).html( new_content ); // here's the list and the pagination links
});
});