有关php+ajax多条件查询,并且分页显示的问题【高分悬赏】
第一个问题,我有四个开关,如果普通的分类有16种情况,怎样才能简洁一点?我主要是需要进行数据库查询,有四个下拉框,每个下拉框都可以空,这样的话有没有什么简便的方法?第二个...
第一个问题,我有四个开关,如果普通的分类有16种情况,怎样才能简洁一点?我主要是需要进行数据库查询,有四个下拉框,每个下拉框都可以空,这样的话有没有什么简便的方法?
第二个问题是,我现在刚刚开始学php+ajax,不知道怎么样进行待条件查询的并且分页显示,谁能帮一下?感谢~ 展开
第二个问题是,我现在刚刚开始学php+ajax,不知道怎么样进行待条件查询的并且分页显示,谁能帮一下?感谢~ 展开
3个回答
展开全部
$sql=select * from table where 1=1
四个下拉框 实际上就是四种 检索条件,在拼接sql的时候分别判断这四个下拉框是否有值 有的话 $sql.="条件1",
$sql.=“&&条件2”;
以此类推
ajax分页的时候 需要传递的值有 分页的偏移量,sql语句中的 limit的 开始位置
四个下拉框 实际上就是四种 检索条件,在拼接sql的时候分别判断这四个下拉框是否有值 有的话 $sql.="条件1",
$sql.=“&&条件2”;
以此类推
ajax分页的时候 需要传递的值有 分页的偏移量,sql语句中的 limit的 开始位置
更多追问追答
追问
还不是很明白,有关ajax多条件分页的问题,我知道需要分页偏移量,我不明白的是,比如说我现在有一个前台的html或者php页面,然后一个js,然后一个后台php,我现在能做到的就只有,在后台php写一个查询,然后返回一个html,table什么的,然后直接就显示在前台的那个html上面了,但是我不知道如何操作,或者在哪个页面进行分页处理,能具体给我讲讲吗?
追答
在前台的html或者php中 调用ajax 通过ajax传递分页偏移量和limit位置,后台的php 在sql查询的时候把偏移量加在sql里,然后根据查询出来的数据 重新定义偏移量跟起始位置 再把这个更新后的数据拿到前台,前台只需要把查询出来的数据显示出来就可以 处理分页的 一般都在后台进行
展开全部
我就是做PHP和jquery的,你的代码很多没必要的,你能不能简化一下,发一下相关的php代码和jquery给我?就只要ajax和php处理代码就OK了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个问题:
假如你四个下拉的name分别为select1,select2,select3,select4,以post方式传,在php页可以这样:
$where='';
if($_POST['select1']){
$where.="and select1 like '%".$_POST['select1']."%'";
}
if($_POST['select2']){
$where.="and select2 like '%".$_POST['select2']."%'";
}
........一直到select4
$sql="select * from table where (1=1) ". $where." limit .....;
第二个问题:
你可以参照这个
前端页:
$.ajax({
type: 'POST',
url: 'ajaxpage.php',
data: {'pageNum':page-1,'classid':classid},
dataType:'json',
beforeSend:function(){ alert('loading...'););//显示加载动画
},
success:function(msg){
var json=eval(msg);
total = json.total; //总记录数
if(total==0){
alert('无相关记录');
}else{
pageSize = json.pageSize; //每页显示条数
curPage = page; //当前页
totalPage = json.totalPage;//总页数
list = json.list;
$.each(list,function(index,array){ //遍历json数据列
alert(array['id']+array['name']);
});
}
},
complete:function(){ //生成分页条
getPageBar(total,curPage,totalPage,classid,code);
},
error:function(){
alert("数据加载失败");
}
});
//获取分页条
function getPageBar(total,curPage,totalPage,classid,code){
if(total!=0){
//页码大于最大页数
if(curPage>totalPage) curPage=totalPage;
//页码小于1
if(curPage<1) curPage=1;
pageStr = "<tr><td align='center' colspan='7' id='pagecount'><span>共"+total+"条</span> <span>"+curPage+"/"+totalPage+"</span> ";
//如果是第一页
if(curPage==1){
pageStr += "<span>首页</span> <span>上一页</span> ";
}else{
pageStr += "<span><a href='javascript:void(0);' rel='1' cl='"+classid+"' code='"+code+"'>首页</a></span> <span><a href='javascript:void(0)' rel='"+(curPage-1)+"' cl='"+classid+"' code='"+code+"'>上一页</a></span> ";
}
//如果是最后页
if(curPage>=totalPage){
pageStr += "<span>下一页</span> <span>尾页</span></td></tr>";
}else{
pageStr += "<span><a href='javascript:void(0);' rel='"+(parseInt(curPage)+1)+"' cl='"+classid+"' code='"+code+"'>下一页</a></span> <span><a href='javascript:void(0)' rel='"+totalPage+"' cl='"+classid+"' code='"+code+"'>尾页</a></span></td></tr>";
}
$("#mypage").append(pageStr); //在你的位置输出分页条
}
}
php页:
$page = intval($_REQUEST['pageNum']); //当前页
$classid=intval($_REQUEST['classid']);
$total =mysql_fetch_row(mysql_query("select count(*) from table where id=".$classid));//获取总记录数
$pageSize = 10; //每页显示数
$totalPage = ceil($total['count(*)']/$pageSize); //总页数
$startPage = $page*$pageSize; //开始记录
//构造数组
$arr=array();
$arr['total'] = $total['count(*)']; //总记录数
$arr['pageSize'] = $pageSize;
$arr['totalPage'] = $totalPage;
$result=mysql_query("select id,name from table where id=".$classid." limit $startPage,$pageSize");
if(mysql_num_rows!=0){
while($row=mysql_fetch_array($result)){
$arr['list']=$row;
}
}else{
$arr['list']='';
}
echo json_encode($arr); //输出JSON数据
如有用请采纳,入有错请勿笑,我也是参照别人写得,霍霍
假如你四个下拉的name分别为select1,select2,select3,select4,以post方式传,在php页可以这样:
$where='';
if($_POST['select1']){
$where.="and select1 like '%".$_POST['select1']."%'";
}
if($_POST['select2']){
$where.="and select2 like '%".$_POST['select2']."%'";
}
........一直到select4
$sql="select * from table where (1=1) ". $where." limit .....;
第二个问题:
你可以参照这个
前端页:
$.ajax({
type: 'POST',
url: 'ajaxpage.php',
data: {'pageNum':page-1,'classid':classid},
dataType:'json',
beforeSend:function(){ alert('loading...'););//显示加载动画
},
success:function(msg){
var json=eval(msg);
total = json.total; //总记录数
if(total==0){
alert('无相关记录');
}else{
pageSize = json.pageSize; //每页显示条数
curPage = page; //当前页
totalPage = json.totalPage;//总页数
list = json.list;
$.each(list,function(index,array){ //遍历json数据列
alert(array['id']+array['name']);
});
}
},
complete:function(){ //生成分页条
getPageBar(total,curPage,totalPage,classid,code);
},
error:function(){
alert("数据加载失败");
}
});
//获取分页条
function getPageBar(total,curPage,totalPage,classid,code){
if(total!=0){
//页码大于最大页数
if(curPage>totalPage) curPage=totalPage;
//页码小于1
if(curPage<1) curPage=1;
pageStr = "<tr><td align='center' colspan='7' id='pagecount'><span>共"+total+"条</span> <span>"+curPage+"/"+totalPage+"</span> ";
//如果是第一页
if(curPage==1){
pageStr += "<span>首页</span> <span>上一页</span> ";
}else{
pageStr += "<span><a href='javascript:void(0);' rel='1' cl='"+classid+"' code='"+code+"'>首页</a></span> <span><a href='javascript:void(0)' rel='"+(curPage-1)+"' cl='"+classid+"' code='"+code+"'>上一页</a></span> ";
}
//如果是最后页
if(curPage>=totalPage){
pageStr += "<span>下一页</span> <span>尾页</span></td></tr>";
}else{
pageStr += "<span><a href='javascript:void(0);' rel='"+(parseInt(curPage)+1)+"' cl='"+classid+"' code='"+code+"'>下一页</a></span> <span><a href='javascript:void(0)' rel='"+totalPage+"' cl='"+classid+"' code='"+code+"'>尾页</a></span></td></tr>";
}
$("#mypage").append(pageStr); //在你的位置输出分页条
}
}
php页:
$page = intval($_REQUEST['pageNum']); //当前页
$classid=intval($_REQUEST['classid']);
$total =mysql_fetch_row(mysql_query("select count(*) from table where id=".$classid));//获取总记录数
$pageSize = 10; //每页显示数
$totalPage = ceil($total['count(*)']/$pageSize); //总页数
$startPage = $page*$pageSize; //开始记录
//构造数组
$arr=array();
$arr['total'] = $total['count(*)']; //总记录数
$arr['pageSize'] = $pageSize;
$arr['totalPage'] = $totalPage;
$result=mysql_query("select id,name from table where id=".$classid." limit $startPage,$pageSize");
if(mysql_num_rows!=0){
while($row=mysql_fetch_array($result)){
$arr['list']=$row;
}
}else{
$arr['list']='';
}
echo json_encode($arr); //输出JSON数据
如有用请采纳,入有错请勿笑,我也是参照别人写得,霍霍
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |