>  기사  >  백엔드 개발  >  PHP分页问题,求大神指导

PHP分页问题,求大神指导

WBOY
WBOY원래의
2016-06-23 14:10:28698검색

<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;//当页码参数为空时,将页码设为1if ($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> 

代码如上:
初始查询结果如下:

问题1:分页显示的为啥在最后一条数据的上面呢?
问题2:点击下一页的时候 ,搜索条件没了?

问题3: 点击最后一页的时候报错了。


Ps:本人PHP初学者,搞得有点头大了~ 求大神们帮忙看下,万分感谢


回复讨论(解决方案)

有没有人啊

foreach循环最后少加上了一个吧

网上有分页的类,下一个看看

foreach循环最后少加上了一个吧
是的,这里确实少了一个,感谢哈

网上有分页的类,下一个看看
初学者,你不知道啊,太复杂的看起来打都看不懂。


还有人吗?剩下的2个问题都是头大问题

if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>

if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
 
大清早,迷糊写错了。。
"/>


if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
 
大清早,迷糊写错了。。
"/>
iput报错了~Value这里绑定报错啦


if($key==""){  echo "请输入搜索条件";    return;   $_SESSION['key'] = $key;//这里把KEY保存到session}<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
 
大清早,迷糊写错了。。
"/>

<form   id="documentForm"   method="POST"> <p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" value="<?=$_SESSION[key] ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> 

果然还是迷糊了。应该写在else里面,如果$key不为空再写进session。
"/>
加上引号
我再看看第三个

首先,这里你得明白一个原理:url带参数过来的是GET提交的,需要用$_GET接收数据

还有,分页的时候链接需要把所有参数传递过去,比如你这里的就应该把key这个参数传递过去,即形式如:
a.php?key=$key&page=2 这样的格式
最后一点:$key = $_POST["key"]; 要改成$key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];
最后用下面这个放在你的input里 
"/>

果然还是迷糊了。应该写在else里面,如果$key不为空再写进session。
"/>
加上引号
我再看看第三个
加上引号还是有错哦。

首先,这里你得明白一个原理:url带参数过来的是GET提交的,需要用$_GET接收数据

还有,分页的时候链接需要把所有参数传递过去,比如你这里的就应该把key这个参数传递过去,即形式如:
a.php?key=$key&page=2 这样的格式
最后一点:$key = $_POST["key"]; 要改成$key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];
最后用下面这个放在你的input里 
"/>
还是input标签这里报错了~

<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" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($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>";		echo "</table>";	}}	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> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

<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" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($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>";		echo "</table>";	}}	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> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

你可能没开短标签支持吧。,
 "/>

我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试  看最后一页还会不会报错。
他的信息流好像是有问题


<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" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($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>";		echo "</table>";	}}	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> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

你可能没开短标签支持吧。,
 "/>

我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试  看最后一页还会不会报错。
他的信息流好像是有问题
还是不行,短标签支持怎么开?


<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" value="<?php echo $key ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php//$key = $_POST["key"]; $key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];if($key==""){  echo "请输入搜索条件";	return;}else{	 $_SESSION['key'] = $key;//这里把KEY保存到session}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($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>";		echo "</table>";	}}	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> 

现在代码这样的

Value不管是这样绑定还是前面那位大神说的_SESSION绑定都有错。
是不是我哪里写错了呢

你可能没开短标签支持吧。,
 "/>

我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试  看最后一页还会不会报错。
他的信息流好像是有问题
第三个问题是,如果我输出的是一条数据就会报错,这是为啥呢

<?phpsession_start();$_SESSION['key'] = $_POST["key"] ;?><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" value="<?=$_SESSION['key'] ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php$key = $_POST["key"]; if($key==""){  echo "请输入搜索条件";    return;    }else{    unset($_SESSION['key']);}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($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>"."</table>";    }}    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> 


上面这段代码运行良好,在搜索‘新闻’的时候最后一页会出非法字符。
搜索‘如何’没有错误。搜索‘英语’也没错误。

<?phpsession_start();$_SESSION['key'] = $_POST["key"] ;?><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" value="<?=$_SESSION['key'] ?>"/> </p> <p> <input type="submit" name="submit" id="insu" value="搜索!"/> </p> </form> <?php$key = $_POST["key"]; if($key==""){  echo "请输入搜索条件";    return;    }else{    unset($_SESSION['key']);}//取得页码$page = @$_GET['page'];//定义每页显示信息条数$page_size = 10;//当页码参数为空时,将页码设为1if ($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>"."</table>";    }}    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> 


上面这段代码运行良好,在搜索‘新闻’的时候最后一页会出非法字符。
搜索‘如何’没有错误。搜索‘英语’也没错误。
不知道为什么,就是最后只有一条数据的时候报错,搜索新闻第三页只有一条数据了就报错了,其他都没错
那个传值的没问题了。感谢你哈

你搜索‘田径运动会’,看是不是还出那个错误。如果出,就用我下面的代码
在foreach加了个if语句来判断结果。

<?phpsession_start ();$_SESSION['key'] = $_POST["key"] ;?>  <meta> <script></script><script> 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> 
 

 输入关键字:
 "/> 

 

  

 
 '1','key'=>$key,'pageIndex'=>$page,'pageSize'=>$page_size);//传参$ret = $client->NewsSearch($param);//执行获取新闻的方法//print_r ($ret);if(isset($ret)&&$ret){    if (is_array($ret->NewsSearchResult->InheritanceNews)) {        foreach($ret->NewsSearchResult->InheritanceNews as $item) {           echo "\n\n";        echo "\n";        echo ""."
$item->Title
";        }    }else{        echo "\n\n";        echo "\n";        echo ""."
$ret->NewsSearchResult->InheritanceNews->title
";    }}    else    {        echo 'no user';    }    //总页数        $totalPage = ceil(($item->NewsCount)/$page_size);        //上一页链接        $Prev = $page - 1;        if ($Prev  $totalPage)        {            $Next = $totalPage;        }        //输出上一页链接        if ($page  1)        {            echo 'First ';            echo 'Prev';        }        else        {            echo 'First';            echo 'Prev';        }        //页码数字链接        //显示的数字个数        $pageNumber = 5;        //页码数算法        $pagebegin = $page - $pageNumber;        if ($page == 1)        {            $pageend = $pageNumber;        }        else        {            $pageend = $page + $pageNumber;        }        if ($pagebegin  $totalPage)        {            $pageend = $totalPage;        }        //一次向前翻$pageNumber行        if ($page > $pageNumber)        {            echo '';        }        //输出动态生成的页码链接        for ($i = $pagebegin; $i ' . $i . '';            }            else            {                echo '' . $i . '';            }        }        //一次向后翻$pageNumber行        if (($totalPage - $page) > 5)        {            echo '>>';        }        //输出下一页链接        if ($page  $totalPage)        {            echo 'Next';            echo 'Last';        }        else        {    
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.