查询后得到的列表,
再用分页函数分页操作,
可是一按下一页,搜索的结果就没了,必须重新点击查询按钮才会再显示出来。
这个应该怎么办?
<form id="form2" name="form2" method="post" action="<?=$_SERVER['../PHP_SELF'];?>">
所要查询的物品名称或设备编码:
<input name="txtSearch" type="text" id="txtSearch" />
<input name="btnSearch" type="submit" id="btnSearch" value="查询" onclick="showHint();" />
</form>
<DIV style="BORDER: black 2px solid; OVERFLOW: scroll; WIDTH: 620px; SCROLLBAR-DARKSHADOW-COLOR: #000000; HEIGHT: 150px" align=center>
<table width="600" border="0" align="center">
<tr>
<td width="35" bgcolor="#CCCCCC"> </td>
<td bgcolor="#CCCCCC">物料编号</td>
<td bgcolor="#CCCCCC">名称</td>
<td bgcolor="#CCCCCC">型号</td>
<td bgcolor="#CCCCCC">价格</td>
<td bgcolor="#CCCCCC">适用机型</td>
<td bgcolor="#CCCCCC">类别</td>
</tr>
<?php
if($_POST['btnSearch']){
$search = $_POST['txtSearch'];
$sql = "select * from material where Mat_name like '%$search%' or Mat_mode like '%$search%'";
echo $sql;
$_SESSION['sql']=$sql;
$page = page($db,$_SESSION['sql'],4);
while($row = mysql_fetch_array($page[0])){
?>
<tr>
<td width="40">
<input type="radio" name="rb_id" value="<?=$row['Mat_id'].",".$row['Mat_price']?>" onclick="getID();"/> </td>
<td><?=$row['Mat_id']?></td>
<td><?=$row['Mat_name']?></td>
<td><?=$row['Mat_mode']?></td>
<td><?=number_format($row['Mat_price'],2)?></td>
<td><?php if($row['Mat_availableMode']=='') echo "无"; else echo $row['Mat_availableMode'];?></td>
<td><?php if($row['Mat_category']==0) echo "耗材"; else if($row['Mat_category']==1) echo "电脑"; else echo "其他设备";?></td>
</tr>
<?php
}
}
?>
<tr><td height="20" colspan="7" bgcolor="#CCCCCC"><?=$page[1]?></td>
</tr>
</table>
</DIV>
再用分页函数分页操作,
可是一按下一页,搜索的结果就没了,必须重新点击查询按钮才会再显示出来。
这个应该怎么办?
<form id="form2" name="form2" method="post" action="<?=$_SERVER['../PHP_SELF'];?>">
所要查询的物品名称或设备编码:
<input name="txtSearch" type="text" id="txtSearch" />
<input name="btnSearch" type="submit" id="btnSearch" value="查询" onclick="showHint();" />
</form>
<DIV style="BORDER: black 2px solid; OVERFLOW: scroll; WIDTH: 620px; SCROLLBAR-DARKSHADOW-COLOR: #000000; HEIGHT: 150px" align=center>
<table width="600" border="0" align="center">
<tr>
<td width="35" bgcolor="#CCCCCC"> </td>
<td bgcolor="#CCCCCC">物料编号</td>
<td bgcolor="#CCCCCC">名称</td>
<td bgcolor="#CCCCCC">型号</td>
<td bgcolor="#CCCCCC">价格</td>
<td bgcolor="#CCCCCC">适用机型</td>
<td bgcolor="#CCCCCC">类别</td>
</tr>
<?php
if($_POST['btnSearch']){
$search = $_POST['txtSearch'];
$sql = "select * from material where Mat_name like '%$search%' or Mat_mode like '%$search%'";
echo $sql;
$_SESSION['sql']=$sql;
$page = page($db,$_SESSION['sql'],4);
while($row = mysql_fetch_array($page[0])){
?>
<tr>
<td width="40">
<input type="radio" name="rb_id" value="<?=$row['Mat_id'].",".$row['Mat_price']?>" onclick="getID();"/> </td>
<td><?=$row['Mat_id']?></td>
<td><?=$row['Mat_name']?></td>
<td><?=$row['Mat_mode']?></td>
<td><?=number_format($row['Mat_price'],2)?></td>
<td><?php if($row['Mat_availableMode']=='') echo "无"; else echo $row['Mat_availableMode'];?></td>
<td><?php if($row['Mat_category']==0) echo "耗材"; else if($row['Mat_category']==1) echo "电脑"; else echo "其他设备";?></td>
</tr>
<?php
}
}
?>
<tr><td height="20" colspan="7" bgcolor="#CCCCCC"><?=$page[1]?></td>
</tr>
</table>
</DIV>
global $id;
$id = 'txtSearch='.$_POST['txtSearch'];
这样就可以了,实现点击下一页,搜索的条件依旧存在
{
$result=mysql_query($sql);
$number=mysql_num_rows($result);//总记录数
if(!$number){return 0;exit;}
$totalpage=ceil($number/$pagesize);
//接收页码数
$pageno=(int)$_GET['page'];
//校验页码数的有效性
$pageno=$pageno<=1?1:$pageno;
$pageno=$pageno>=$totalpage?$totalpage:$pageno;
//计算起始记录数
$startrow=($pageno-1)*$pagesize;
$sql.=" limit $startrow,$pagesize";
$result=mysql_query($sql);
$num=mysql_num_rows($result)!=$pagesize?mysql_num_rows($result):$pagesize;
$num=$num+$startrow-1;
$url=$_SERVER["PHP_SELF"];
if($pageno==1) $str= '首页 | 上页 | ';
else $str= '<a href="'.$url.'?page=1&'.$class.'">首页</a> | <a href="'.$url.'?page='.($pageno-1).'&'.$class.'">上页</a> | ';
if($pageno==$totalpage) $str.= "下页 | 末页 ";
else $str.= '<a href="'.$url.'?page='.($pageno+1).'&'.$class.'">下页</a> | <a href="'.$url.'?page='.$totalpage.'&'.$class.'">末页</a>';
$str.= "共 $totalpage 页 当前第 $pageno 页 位于第 $startrow 条至 $num 条记录"; return array($result,$str);
}然后HTML页面里改成 global $class;
if($_POST['btnSearch']){
$class = $_POST['txtSearch'];
$sql = "select * from material where Mat_name like '%$class%' or Mat_mode like '%$class%'";
echo $sql;
$page = page($db,$sql,4,$class);还是不对啊?哪里改错了嘛?
function page($db,$sql,$pagesize)
{
global $class;
$result=mysql_query($sql);
$number=mysql_num_rows($result);//总记录数
if(!$number){return 0;exit;}
$totalpage=ceil($number/$pagesize);
//接收页码数
$pageno=(int)$_GET['page'];
//校验页码数的有效性
$pageno=$pageno<=1?1:$pageno;
$pageno=$pageno>=$totalpage?$totalpage:$pageno;
//计算起始记录数
$startrow=($pageno-1)*$pagesize;
$sql.=" limit $startrow,$pagesize";
$result=mysql_query($sql);
$num=mysql_num_rows($result)!=$pagesize?mysql_num_rows($result):$pagesize;
$num=$num+$startrow-1;
$url=$_SERVER["PHP_SELF"];
if($pageno==1) $str= '首页 | 上页 | ';
else $str= '<a href="'.$url.'?page=1&'.$class.'">首页</a> | <a href="'.$url.'?page='.($pageno-1).'&'.$class.'">上页</a> | ';
if($pageno==$totalpage) $str.= "下页 | 末页 ";
else $str.= '<a href="'.$url.'?page='.($pageno+1).'&'.$class.'">下页</a> | <a href="'.$url.'?page='.$totalpage.'&'.$class.'">末页</a>';
$str.= "共 $totalpage 页 当前第 $pageno 页 位于第 $startrow 条至 $num 条记录"; return array($result,$str);
}[code=HTML]
global $class;
$class= 'txtSearch='.$_POST['txtSearch'];
if($_POST['btnSearch']){
$class = $_POST['txtSearch'];
$sql = "select * from material where Mat_name like '%$class%' or Mat_mode like '%$class%'";
echo $sql;
$page = page($db,$sql,4);
[/code]
$class= 'txtSearch='.$_POST['txtSearch'];
if($_POST['btnSearch']){
$search = $_POST['txtSearch'];
$sql = "select * from material where Mat_name like '%$search %' or Mat_mode like '%$search %'";
echo $sql;
$page = page($db,$sql,4);
$class = $_REQUEST['txtSearch'];
$sql = "select * from material where Mat_name like '%$class%' or Mat_mode like '%$class%'";
echo $sql;
$page = page($db,$sql,4,$class);
这样查询的条件就不会丢失了。不过这个参数要过滤
$class= 'txtSearch='.$_POST['txtSearch'];
if($_POST['btnSearch']){
$search = $_POST['txtSearch'] ? $_POST['txtSearch'] : $_GET['txtSearch'] ;
$sql = "select * from material where Mat_name like '%$search %' or Mat_mode like '%$search %'";
echo $sql;
$page = page($db,$sql,4);
看了你的代码,你还是没弄清楚。你搜索要执行的话,要什么条件呢?按照你写的
1.$class= 'txtSearch='.$_POST['txtSearch'];// 这个只有第一次才有翻页之后,这里有值吗?改为$_REQUEST["txtSearch"]
2.
if($_POST['btnSearch']){
//这里只有提交表单才可以执行,翻页之后这里能执行吗?
}
这样改:
global $class;
$keyword=$_REQUEEST['txtSearch'];
$class= "txtSearch=$keyword";
if($keyword){
// $search = $_POST['txtSearch'] ? $_POST['txtSearch'] : $_GET['txtSearch'] ;
$sql = "select * from material where Mat_name like '%$keyword%' or Mat_mode like '%$keyword%'";
echo $sql;
$page = page($db,$sql,4);
$class= 'action='.$_SERVER['../PHP_SELF'].'&txtSearch='.$_POST['txtSearch'];
if($_GET['action'] == $_SERVER['../PHP_SELF']){
$search = $_POST['txtSearch'] ? $_POST['txtSearch'] : $_GET['txtSearch'] ;
$sql = "select * from material where Mat_name like '%$search %' or Mat_mode like '%$search %'";
echo $sql;
$page = page($db,$sql,4);
$_SERVER['../PHP_SELF']....这样的写法没见过啊!难道我落后了?
<form id="form2" name="form2" method="post" action="<?=$_SERVER['../PHP_SELF'];?>?action=search">global $class;
$class= 'action=search&txtSearch='.$_POST['txtSearch'];
if($_GET['action'] == 'search'){
$search = $_POST['txtSearch'] ? $_POST['txtSearch'] : $_GET['txtSearch'] ;
$sql = "select * from material where Mat_name like '%$search %' or Mat_mode like '%$search %'";
echo $sql;
$page = page($db,$sql,4);
$class= 'action=search&txtSearch='.$_REQUEST['txtSearch'];
//$_REQUEST 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。
//some code here$class= 'action=search&txtSearch='.$_REQUEST['txtSearch'];if($_REQUEST['txtSearch']&&$_GET["action"]=="search")
{
$sql = "select * from material where Mat_name like '%$_REQUEST['txtSearch']%' or Mat_mode like '%$_REQUEST['txtSearch']%'";
$page = page($db,$sql,4);
//some code here
}
自己动动脑子啊
if($_REQUEST['txtSearch']&&$_GET["action"]=="search")
{
$sql = "select * from material where Mat_name like '%$_REQUEST['txtSearch']%' or Mat_mode like '%$_REQUEST['txtSearch']%'";
//some code here
}
else
{$sql = "select * from material";
}
比如有两个文本框,一个id=search1,另一个id=search2
sql语句就位$sql = "select * from material where Mat_name like '%$search1%' and Mat_mode like '%$search2%'";