读书人

PHP分页有关问题求大神指导

发布时间: 2013-06-19 10:26:41 作者: rapoo

PHP分页问题,求大神指导


<html>
<head>
<meta charset="UTF-8">
</head>
<script type="text/javascript" src="http://localhost/jquery.js" ></script>
<script type="text/javascript" >

function aurl(i){
var url = window.location.href;
if(url.indexOf('?')>0){
url=url.substring(0,url.indexOf('?')) ;
}
url=url+"?page="+i;
document.getElementById("documentForm").action=url;
document.getElementById("insu").click();
}
</script>
<body >
<form id="documentForm" method="POST">
<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /> </p>
<p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p>
</form>

<?php
$key = $_POST["key"];
if($key=="")
{
echo "请输入搜索条件";
return;
}
//取得页码
$page = @$_GET['page'];
//定义每页显示信息条数
$page_size = 10;
//当页码参数为空时,将页码设为1
if ($page == "")
{
$page = 1;
}
$wsdl="http://pica.chalwin.com/service/JsAccessWebService.asmx?wsdl";
$client = new SoapClient($wsdl);
$param = array('NodeId'=>'1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参
$ret = $client->NewsSearch($param);//执行获取新闻的方法
//print_r ($ret);
if(isset($ret)&&$ret)
{
foreach($ret->NewsSearchResult->InheritanceNews as $item)
{
echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";
echo "<td>$item->Title</td>\n";
echo "</tr>";
}
}
else
{
echo 'no user';
}
//总页数
$totalPage = ceil(($item->NewsCount)/$page_size);
//上一页链接
$Prev = $page - 1;
if ($Prev < 1)
{
$Prev = 1;
}
//下一页链接
$Next = $page + 1;
if ($Next > $totalPage)
{
$Next = $totalPage;
}
//输出上一页链接
if ($page <> 1)
{
echo '<span><a href="javascript:aurl(1)">First </a></span>';
echo '<span><a href="javascript:aurl(' . $Prev . ')">Prev</a></span>';
}
else
{
echo '<span>First</span>';
echo '<span>Prev</span>';
}
//页码数字链接
//显示的数字个数
$pageNumber = 5;
//页码数算法
$pagebegin = $page - $pageNumber;
if ($page == 1)
{
$pageend = $pageNumber;
}
else
{
$pageend = $page + $pageNumber;
}
if ($pagebegin <= 0)
{
$pagebegin = 1;
}
if ($pageend > $totalPage)
{
$pageend = $totalPage;
}
//一次向前翻$pageNumber行
if ($page > $pageNumber)
{
echo '<span><a href="javascript:aurl('. ($page - $pageNumber) . ')"><<</a></span>';
}
//输出动态生成的页码链接
for ($i = $pagebegin; $i <= $pageend; $i++)


{
if ($i == $page)
{
echo '<span style="background:#FFCC99">' . $i . '</span>';
}
else
{
echo '<span><a href="javascript:aurl('. $i . ')">' . $i . '</a></span>';
}
}
//一次向后翻$pageNumber行
if (($totalPage - $page) > 5)
{
echo '<span><a href="javascript:aurl('. ($page + $pageNumber) . ')">>></a></span>';
}
//输出下一页链接
if ($page <> $totalPage)
{
echo '<span><a href="javascript:aurl('. $Next .')">Next</a></span>';
echo '<span><a href="javascript:aurl('. $totalPage .')">Last</a></span>';
}
else
{
echo '<span>Next</span>';
echo '<span>Last</span>';
}
?>
</body>
</html>


代码如上:
初始查询结果如下:
PHP分页有关问题,求大神指导
问题1:分页显示的为啥在最后一条数据的上面呢?
问题2:点击下一页的时候 ,搜索条件没了?
PHP分页有关问题,求大神指导
问题3: 点击最后一页的时候报错了。
PHP分页有关问题,求大神指导

Ps:本人PHP初学者,搞得有点头大了~ 求大神们帮忙看下,万分感谢
[解决办法]
    if (is_array($ret->NewsSearchResult->InheritanceNews)) {
foreach($ret->NewsSearchResult->InheritanceNews as $item) {
echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";
echo "<td>".$item->Title."</td>\n";
echo "</tr>"."</table>";
}

}elseif(!empty($ret->NewsSearchResult->InheritanceNews)){
//var_dump($ret->NewsSearchResult->InheritanceNews);
$item = $ret->NewsSearchResult->InheritanceNews;
echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";
echo "<td>".$ret->NewsSearchResult->InheritanceNews->Title."</td>\n";
echo "</tr>"."</table>";

}elseif (empty($ret->NewsSearchResult->InheritanceNews)) {
echo '结果为空,请重新搜索';die();
}


如果为空,就不往下走了。这样OK吗?


[解决办法]

引用:
好了,分页的问题搞定了,现在就是一个问题了,当带入搜索条件查询的结果为空时会报错,怎么判断他是否为空呢?if(isset($ret)&&$ret)这样拦截不到吗?

你应该输出看他返回的是什么信息才能判断啊

使用print_r($ret);exit;这样来输出看下
[解决办法]
改为 if(isset($ret->NewsSearchResult->InheritanceNews))

读书人网 >PHP

热点推荐