Maison >développement back-end >tutoriel php >搜寻分页关键字值无法传送

搜寻分页关键字值无法传送

WBOY
WBOYoriginal
2016-06-13 11:55:191022parcourir

搜索分页关键字值无法传送
search.php

<br /><?php<br />include('db_class.php');    <br />include('inc/function.php'); <br /><br />$keyword=trim($_POST['keyword']);<br />if($keyword==""){<br />echo "<script>alert('请输入新闻名称!'); history.go(-1);</script>";<br />exit;//结束程序<br />}<br />// 数据库查找代码<br />$page=isset($_POST['page'])?intval($_POST['page']):1;   <br />$num=2;  <br />$total=$db->getcount("select * from  `".$prefix."newsbase` where  id like '%{$keyword}%'  or title like  '%{$keyword}%' ");<br />//页码计算<br />$pagenum=ceil($total/$num);     //获得总页数,也是最后一页<br />$page=min($pagenum,$page);//获得首页<br />$prepg=$page-1;//上一页<br />$nextpg=($page==$pagenum ? 0 : $page+1);//下一页<br />$offset=($page-1)*$num;<br />$result=$db->query("select * from `".$prefix."newsbase` where sn like '%{$keyword}%'  or title like '%{$keyword}%' or author like '%{$keyword}%' order by news_id desc");<br />if($row=mysql_num_rows($result)){<br />while($row=$db->getarray($result)){<br />?><br /><tr><br />        <td class="font" valign="top"  width="130"><?php echo $row[id]; ?></td><br />        <td class="font" valign="top"  width="130"><?php echo $row[title]; ?></td><br />	<td class="font" valign="top"  width="130"><?php echo $row[author]; ?></td><br /></tr>  <br /><?php<br />}<br />} else{<br />echo "<script>alert('没有该新闻信息!'); history.go(-1);</script>";<br />exit;//结束程序<br />}<br />?><br /><br /><?php <br />include 'inc/fy.php'; //分页类<br />$page=new page(array('total'=>$total,'perpage'=>$num));<br />echo $page->show(3);<br />?><br />


'inc/fy.php' 是网上找的一个PHP分页类(支持四种分页模式),这里我使用的是模式三,现在的问题是搜索正确显示,但是在分页单击下一页的时候老提示“请输入新闻名称”,也就是说关键字没传成功,是在不明白问题在哪里,在论坛上搜索了好久都没有类似的问题,特来请教各位大虾!
------解决方案--------------------
1. 你的page变量不是用get传递吗。
2.$result=$db->query("select * from `".$prefix."newsbase` where sn like '%{$keyword}%'  or title like '%{$keyword}%' or author like '%{$keyword}%' order by news_id desc");  这句没有传递分页条件。
改为:
$result=$db->query("select * from `".$prefix."newsbase` where sn like '%{$keyword}%'  or title like '%{$keyword}%' or author like '%{$keyword}%' order by news_id desc Limit {$offset},{$num}");
------解决方案--------------------
$_POST['keyword'] 只在表单提交时有效,翻页后就没有了

------解决方案--------------------
传递分页里面的关键字的话,最好在表单里面使用GET方式提交。提交之后,表单里面的Action里面的链接带的所有参数将不会自动被提交。必须放到里面才可以。其次是,遇到中文的问题,必须进行url_encode编码才能进行传递。不然会乱码。http://www.phpcxz.com/a/web/phpweb/2011/0802/113.html

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn