<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> 代码如上:
初始查询结果如下:问题1:分页显示的为啥在最后一条数据的上面呢?
问题2:点击下一页的时候 ,搜索条件没了?问题3: 点击最后一页的时候报错了。
Ps:本人PHP初学者,搞得有点头大了~ 求大神们帮忙看下,万分感谢
if($key=="")
{
echo "请输入搜索条件";
return;
$_SESSION['key'] = $key;//这里把KEY保存到session
}
<p> 输入关键字:<br/> <input type="text" name="key" size="6" maxlength="6" /><?=$_SESSION[key] ?> </p>
大清早,迷糊写错了。。
<input type="text" name="key" size="6" maxlength="6" value="<?=$_SESSION[key] ?>"/>
<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>
<input type="text" name="key" size="6" maxlength="6" value="<?=$_SESSION['key'] ?>"/>
加上引号
我再看看第三个
a.php?key=$key&page=2 这样的格式
最后一点:$key = $_POST["key"]; 要改成$key = ($_POST["key"]=='')? $_GET["key"]:$_POST["key"];
最后用下面这个放在你的input里
<input type="text" name="key" size="6" maxlength="6" value="<?php echo $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="<?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;
//当页码参数为空时,将页码设为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>";
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绑定都有错。
是不是我哪里写错了呢
你可能没开短标签支持吧。,
<input type="text" name="key" size="6" maxlength="6" value="<?php echo $_SESSION['key']; ?>"/>我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试 看最后一页还会不会报错。
他的信息流好像是有问题
你可能没开短标签支持吧。,
<input type="text" name="key" size="6" maxlength="6" value="<?php echo $_SESSION['key']; ?>"/>我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试 看最后一页还会不会报错。
他的信息流好像是有问题
还是不行,短标签支持怎么开?
你可能没开短标签支持吧。,
<input type="text" name="key" size="6" maxlength="6" value="<?php echo $_SESSION['key']; ?>"/>我这里现在运行良好,至于第三个问题。应该不是你的问题
你搜索新闻的时候最后一页会出现错误。。
你把关键词改成 ‘如何’ 试试 看最后一页还会不会报错。
他的信息流好像是有问题
第三个问题是,如果我输出的是一条数据就会报错,这是为啥呢
session_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;
//当页码参数为空时,将页码设为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>"."</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语句来判断结果。
<?php
session_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;
//当页码参数为空时,将页码设为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)
{
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>";
}
}else{
echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";
echo "<td>$ret->NewsSearchResult->InheritanceNews->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>
Catchable fatal error: Object of class stdClass could not be converted to string ?
echo "\n<table border=1 cellspacing='0' width='30%'>\n<tr>";
echo "<td>".$ret->NewsSearchResult->InheritanceNews->title."</td>\n";
echo "</tr>"."</table>";
把第二句的<td>用双引号和句点连接起来,像上面那样。
应该就不会了。只是显示空结果
显示为
object(stdClass)#2 (1) { ["NewsSearchResult"]=> object(stdClass)#3 (0) { } } 所以isset($ret)&&$ret没拦住,到了下面如果直接用foreach来处理的话,
$item就为空了。为空的情况下$item->Title 不可能生效
你搜索老年人
估计是我出了问题。
echo "<td>".$ret->NewsSearchResult->InheritanceNews->Title."</td>\n";里面的title应该首位字母大写 这样就搜的到
$totalPage = ceil(($item->NewsCount)/$page_size);这里怎么改成.格式的呢?.最后一条是有了,但是这里报错了
当返回单条数据时
$ret->NewsSearchResult->InheritanceNews 是对象,而不是对象数组
所以在处理时应做一下判断
$rs = $ret->NewsSearchResult->InheritanceNews;
if(! is_array($rs)) $rs = array($rs);
foreach($rs as $item) {
session_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;
//当页码参数为空时,将页码设为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)
{
//var_dump($ret->NewsSearchResult->InheritanceNews);
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>";
}
}else{
//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>";
}}
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($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吗?