php - 简单的php ajax分页,如何获取请求url
问题描述
更新 2 18.05.2020
(AJAX) 刷新时的 URL 分页 + window.history.replaceState + window.history.pushState +location.pathname
刷新后Test3
$(document).ready(function(){
load_data(1);
function load_data(page)
{
$('#load_data').html('<div id="status" style="" ></div>');
$.ajax({
url:"pagination2.php",
method:"POST",
data:{page:page},
success:function(data){
$('#load_data').html(data);
}
});
}
$(document).on('click', '.pagination_link', function(event)
{
event.preventDefault();
var page = $(this).attr("id");
load_data(page);
//Now push PAGE to URL
window.history.pushState({page}, `Selected: ${page}`, `${ 'page=' + page}`)
//window.history.pushState({page}, `Selected: ${page}`, `./selected=${page}`)
return event.preventDefault();
});
window.addEventListener('popstate', e => {
var page = $(this).attr("id");
load_data(e.state.page);
console.log('popstate error!');
});
//history.replaceState({page: null}, 'Default state', './');
var params = new URLSearchParams(location.search);
params.set('page');
window.history.replaceState({}, "", decodeURIComponent(`${location.pathname}?${params}`));
});
我已经构建了一个有效的 PHP AJAX 分页 -> ajax 分页。
我是 jQuery/ajax 的新手。我无法理解 url 参数的用法。
我的输出:pagination2.php
我想要输出:pagination2.php/page=2,3,4....
有任何想法吗?
我的代码index.php
$(document).ready(function(){
load_data(1);
function load_data(page)
{
$('#load_data').html('<div id="status" style="" ></div>');
var action = 'pagination2';
$.ajax({
url:"pagination2.php",
method:"POST",
data:{page:page},
complete: function(){
alert(this.url)
},
success: function(data){
$('#load_data').html(data);
},
})
}
$(document).on('click', '.pagination_link', function(event)
{
event.preventDefault();
var page = $(this).attr("id");
load_data(page);
return event.preventDefault();
});
});
分页2.php
echo "<span class='pagination_link' style='cursor:pointer;' id='".$i."'>".$i."</span>";
UPDATE1 我添加了:history.pushState 但我不知道这种方法是否正确。我可以操作下一个 - 返回 /selected=2, selected=3... 但是,另一个问题出现了,刷新后选择消失。测试 2
$(document).ready(function(){
load_data(1);
function load_data(page)
{
$('#load_data').html('<div id="status" style="" ></div>');
var action = 'pagination2';
$.ajax({
url:"pagination2.php",
method:"POST",
error: function(xhr, text){
alert("Whoops! The request for new content failed");
},
data:{page:page},
success:function(data){
$('#load_data').html(data);
},
})
}
$(document).on('click', '.pagination_link', function(event) pagination
{
event.preventDefault();
var page = $(this).attr("id");
load_data(page);
history.pushState({page}, `Selected: ${page}`, `./selected=${page}`)
return event.preventDefault();
});
window.addEventListener('popstate', e => {
var page = $(this).attr("id");
load_data(e.state.page);
console.log('popstate error!');
});
history.replaceState({page: null}, 'Default state', './');
});
解决方案
推荐阅读
- docusignapi - “用户 ID 未识别系统中的用户。” 使用 Docusign REST API 发送文档时
- python - 如何从 twilio 调用中获取响应并在浏览器中显示
- blender - Blender 3D 对象在尝试定位时不断相交
- angular - 如何在没有HTML交互的情况下在Angular 6的component2中使用component1的功能?
- android - 如何在房间持久性库中使用嵌套模型?
- jquery - 如何从角度 7 中的最后两个值中获取表格行的差异?
- php - FPDF 自动单元格调整
- sql - 基于多个分隔符拆分记录
- html - 背景图像未在 Laravel 中显示
- javascript - 如何使用javascript将一些base64字符串转换为pdf