PHP[封装]——关键字,时间段,其他条件搜素,排序,分页

使用说明:引入DatePicker文件夹到Public目录,并在script脚本引入是写好相对路径。
 

<script language="javascript" type="text/javascript" src="__PUBLIC__/DatePicker/WdatePicker.js"></script><!--时间选择器-->
 
  <select name="status" id="disabledSelect" class="form-control">
     <option <eq name="status" value="0">selected</eq> value="0">-请选择-</option>
     <option <eq name="status" value="1">selected</eq> value="1">完成</option>
     <option <eq name="status" value="2">selected</eq> value="2">医生拒绝</option>
     <option <eq name="status" value="3">selected</eq> value="3">患者取消</option>
  </select>

  <input name="stime" id="startT" class="form-control" type="text" placeholder="下单时间段 " onClick="WdatePicker()" value="{$cond['stime']}"/>
  <input name="etime" id="endT" class="form-control" type="text" placeholder="下单时间段" onClick="WdatePicker()" value="{$cond['etime']}"/>
  <input class="form-control btn-primary" type="submit" value="筛选" />
	 <!--分页-->
	 <span style="margin-right: 20px;">
	 <span style="float: left;">共{$cond['count']}条</span>
         <select id="page" οnchange="page($(this).val())">
			<for start="0" end="$cond['pageCount']">
				<option value="{$i+1}" <eq name="cond['page']" value="{$i+1}">selected</eq>>{$i+1}</option>
			</for>
		 </select>
	 </span>

js脚本代码

			function page(p){
				var status=$("select[name='status']").val();
				var stime=$("input[name='stime']").val();
				var etime=$("input[name='etime']").val();

				var str='';
				if(status!='') str+='&status='+status;
				if(stime!='' && etime!='')str+='&stime='+stime+'&etime='+etime;

				window.location.href="__CONTROLLER__/orderList&page="+p+str;
			}

方法放在function.php中,控制器调用$sql=SearchForPage_Key($sql,null,'order_time','order_time',$other,'order_time');

并用  $this->cond=$sql;  将搜索条件分配回页面

<pre name="code" class="php">/**
 * MySQL通用条件搜索方法
 *
 *主SQL FROM要大小(子查询要小写)
 * @param I('keyword')  
 * @param I('stime')
 * @param I('etime')
 * @param I('page')
 * @param C('pageSize')或在这里注明
 * ==========================
 * @param $sql		主搜索语句
 * @param $kwField	关键字
 * @param $sTField	开始时间
 * @param $eDField	结束时间
 * @param $other	其他条件(sql语句)
 * @param $is_page	是否分页,默认$is_page=1 开启分页
 * 
 * @return $sql		array('sql'=>$sql,'count'=>$count,'pageCount'=>$pageCount,'page'=>$p,'keyword'=>$keyword,'stime'=>$stime,'etime'=>$etime);
 */
function SearchForPage_Key($sql,$kwField,$sTField,$eDField,$other=null,$orderByField,$is_page=1){
	//关键字
	$keyword=I('keyword');
	if(!empty($keyword)) $sql="$sql AND $kwField like '%".trim($keyword)."%'";
	//时间段
	$stime=I('stime');
	$etime=I('etime');
	if(!empty($stime) && !empty($etime)) $sql="$sql AND ($sTField>='$stime' AND $eDField<='$etime' )";
	//其他
	if($other) $sql="$sql $other";
	//排序
	if($orderByField) $sql="$sql order by $orderByField desc";

	//分页
	if($is_page){

		//数据条数
		$cond=strstr($sql,'FROM');
		$countSql="select count(*) as c $cond";//截取主语句中From之后
		$count=M()->query($countSql);
		if(!empty($count['c'])){
			$count=$count['c'];
		}else{
			$count=$count[0]['c'];
		}

		$pageSize= 10;
		$p=I('page');
		if($p==null || $p<1) $p=1;
		$pageCount=ceil(($count/$pageSize));
		if(!$pageCount)$pageCount=1;
		if($pageCount<$p){
			echo "pc:$pageCount|count:$count|p:$p";
			request_result(0, '暂无更多信息', 0);
		}
		$start=($p-1)*$pageSize;
		$sql="$sql limit $start,$pageSize";
	}
	if(!$count) $count=0;
	return array('sql'=>$sql,'count'=>$count,'pageCount'=>$pageCount,'page'=>$p,'keyword'=>$keyword,'stime'=>$stime,'etime'=>$etime);
}

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值