这里我的目标是对book_search.php的搜索记录进行分页。当我给出“S”并且我在sql查询中使用limit时,每个页面中只显示4条记录,总共有16条记录。但是当我执行了第一次它将正确地给出前4个记录的下一个和上一个链接,但对于剩下的记录,当我点击下一个时它不会显示任何内容。这里有3个我用过的文件 1)book_search.php 2)ajax.php 3)script.js 这里我使用ajax调用来执行记录,以及如何在点击jquery按钮时将搜索到的字符串和页码传递给ajax调用,以便在重新记录中处理分页,请你帮忙解决问题。先感谢您。 book_search.php
<?php
include('assets/page_header.php');
?>
<div class="container">
<h1>SEARCHING THE BOOK</h1>
<form id="search" name="search" action="#" method="post">
Search : <input type="text" name="author" id="author">
<input id="submit" name="submit" type="submit" value="Submit">
</form><div id="display">
</div>
</div>
</body>
</html>
ajax.php
<?php
include('db.php');
$page="";
if(isset($_GET['page']))
{
$page=$_GET['page'];
echo $page;
}
$num_rec_per_page = 5;
?>
<div id="navigation">
<input type="hidden" name="page" value="<?php if(isset($page)) echo $page;?>">
<?php
if(isset($_POST['author']))
{
$author=mysql_real_escape_string($_POST['author']);
if($author=="")
{
echo "Please Enter Title or Author or Publisher";
}
else
{
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $num_rec_per_page;
$query1="select * from books where title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%' LIMIT $start_from, $num_rec_per_page ";
echo $query1;
$rs_result=mysql_query("select * from books where title LIKE '%$author%' OR author LIKE '%$author%' OR publisher LIKE '%$author%'");
$total_records = mysql_num_rows($rs_result);
echo $total_records;//count number of records
$total_pages = ceil($total_records / $num_rec_per_page);
$phpself=$_SERVER['PHP_SELF'];
if($page>1)
{
$pagenumber=$page-1;
$prev="<a href=\"$phpself?page=$pagenumber\">[Back]</a>";
$first="<a href=\"$phpself?page=1\">[FirstPage]</a>";
}
else
{
$prev='';
$first='';
}
if($page<$total_pages)
{
$pagenumber=$page+1;
$next="<a href=\"$phpself?page=$pagenumber\">[Next]</a>";
$last="<a href=\"$phpself?page=$total_pages\">[LastPage]</a>";
}
else
{
$next="";
$last="";
/*$next='[next]';
$last='[LastPage]';*/
}
//for ($i=1; $i<=$total_pages; $i++) {
// echo "<a href='members1.php?page=".$i."'> ".$i."</a> ";
// };
echo $first.$prev."Showing page<bold>$page</bold>of<bold>$total_pages</bold>pages".$next.$last;
/*if($total_records > 0) {
echo "<a href='members1.php?page=1'> ".'<'." </a> "; // Goto 1st page
}
// echo "<a href='members1.php?page=1'> ".'<<'." </a> ";
if($total_records > 0) {
echo "<a href='members1.php?page=$total_pages'> ".'>'." </a> "; // Goto last page
}*/
$result1=mysql_query($query1) or die(mysql_error());
//print_r($result1);
$count=mysql_num_rows($result1);
//echo $count;
$display= "<table align='center'>";
$display.= "<tr><td>title</td> <td>author</td> <td>publisher</td> <td>numcopies</td> <td>status</td> <td>number_of_copies_available</td> <td>Action</td> </tr>";
while($row=mysql_fetch_array($result1)){
$count=mysql_num_rows($result1);
//print_r($row['bookid']);
$r12=$row['bookid'];
$query2=mysql_query("select bookid from bookrentalinfo where bookid=$r12");
$num_copies_borrowed=mysql_num_rows($query2);
$num_copies_count=$row['numcopies'];
$number_of_copies_available=$num_copies_count-$num_copies_borrowed;
$display.= "<tr>";
//echo "<td>".$row['bookid']."</td>";
$display.="<td>".$row['title']."</td>";
$display.= "<td>".$row['author']."</td>";
$display.= "<td>".$row['publisher']."</td>";
$display.= "<td>".$row['numcopies']."</td>";
$display.= "<td>".$row['status']."</td>";
$display.= "<td>".$number_of_copies_available."</td>";
if($number_of_copies_available>0)
{
$display.= "<td><a href='borrow_search.php?book_id=".$row['bookid']."'>Rent</a></td>";
}
else {
$display.= "rent link is not activated";
$display.="<td></td>";
}
$display.= "</tr>";
}
$display.="</table>";
echo $display;
}
}
?>
</div>
</html>
的script.js
$(document).ready(function(){
$( "#renewaldate" ).datepicker({ minDate: 0});
$("#submit").click(function(e){
//console.log("div value"+$('#display').html());
var author = $("#author").val();
var dataString='author='+author;
if(author=='')
{
alert("Please Enter Author or Title or Publisher Fields");
}
else
{
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "db/ajax.php",
data: dataString,
cache: false,
success: function(result){
//alert("submitted"+result);
$('#display').html(result);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
e.preventDefault();
});
});
答案 0 :(得分:0)
我认为问题可能在你的JavaScript部分,你没有通过你的pagenumber。 尝试将script.js编辑为:
编辑2 已添加&#39;&amp;&#39;在数据字符串
中var author = $("#author").val();
var page = $("#page").val();
var dataString='author='+author+'&page='+page;
并将一个带有pagenumber和ID&#34; page&#34;的inputfield添加到ajax.php的输出中。
移动结尾</form>
- 标记在&#34;显示&#34; -Div。
编辑你应该从第0页开始。将此添加到Ajax.php
编辑3 已更改为第1页
<input type="hidden" name="page" value="<?php echo isset($page)?$page:1;;?>">
顺便说一句......你ajax.php写的是</html>
你应该删除它,因为你的页面已经有一个关闭的html标签。