【发布时间】:2017-07-17 00:00:17
【问题描述】:
我想在我的网页上加载前 10 个结果,然后使用加载更多按钮在同一页面上使用 AJAX 加载下一个 10 个结果。我的网页可以有两种类型的 URL。
1. www.example.com/list.php?name=ABC&area=All
2. www.example.com/list.php?name=ABC&area=BCD
如果有人手动键入 URL 并且名称和区域不匹配意味着名称或区域与数据库结果不匹配,那么他/她将被重定向到 error404.php。
脚本:
<script type="text/javascript">
var track_page = 1;
load_contents(track_page);
$("#load_more_button").click(function (e) {
track_page++;
load_contents(track_page);
});
function load_contents(track_page){
$('.animation_image').show();
$.post( 'fetch_pages.php', {'page': track_page}, function(data){
if(data.trim().length == 0){
$("#load_more_button").text("You have reached end of the record!").prop("disabled", true);
}
$("#results").append(data);
$('.animation_image').hide();
});
}
</script>
list.php
$_SESSION['name']=$_GET['name'];
$_SESSION['area']=$_GET['area'];
<div class="wrapper">
<div id="results"></div>
<button id="load_more_button"><img src="ajax-loader.gif" class="animation_image" style="float:left;"> Load More</button>
</div>
Fetch_pages.php
include("db.php");
$item_per_page = 10;
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH);
$position = (($page_number-1) * $item_per_page);
$sort="id";
if(isset($_GET['sort'])&&($_GET['sort'])=='ASC'){
$sort="price ASC";
}
elseif(isset($_GET['sort'])&&($_GET['sort'])=='DESC'){
$sort="price DESC";
}
if($_SESSION['area']=='All'){
$stmt = $mysqli->prepare("SELECT * from table where name= ? ORDER BY $sort LIMIT ?,?");
$stmt->bind_param("sdd", $_SESSION['name'], $position, $item_per_page);
}
else{
$stmt = $mysqli->prepare("SELECT * from table where name= ? AND area= ? ORDER BY $sort LIMIT ?,?");
$stmt->bind_param("ssdd", $_SESSION['name'], $_SESSION['area'], $position, $item_per_page);
}
$stmt->execute();
$i=1;
$res = $stmt->get_result();
while($row4=mysqli_fetch_array($res)){
---------------
---------------
}
如果 URL 中没有可用的 GET 变量,上述脚本可以正常工作。但是如果我想根据 $_GET 变量加载页面内容,它会给出一个错误,即 $_GET 变量未定义。我需要在哪里定义这些变量。我也尝试在 fetch_pages.php 和 list.php 上定义 S_SESSION 变量,但它仍然给出错误。
最好的方法是什么?谢谢....
【问题讨论】:
标签: javascript php jquery mysql