实现ecshop会员中心增加订单搜索功能,在user.php中的act=order_list中增加以下程序。
$order_sn = isset($_REQUEST['order_sn'])?$_REQUEST['order_sn']:'';
$consignee = isset($_REQUEST['consignee'])?$_REQUEST['consignee']:'';
$start_date = isset($_REQUEST['start_date'])?$_REQUEST['start_date']:'';
$end_date = isset($_REQUEST['end_date'])?$_REQUEST['end_date']:'';
$pay_status = isset($_REQUEST['pay_status'])?$_REQUEST['pay_status']:'';
$shipping_status = isset($_REQUEST['shipping_status'])?$_REQUEST['shipping_status']:'';
$order_status = isset($_REQUEST['order_status'])?$_REQUEST['order_status']:'';
$where ="";
if($order_sn){
$where.=" and order_sn ='$order_sn'";
}
if($consignee){
$where.=" and consignee = '$$consignee'";
}
if($start_date){
$t = strtotime($start_date);
$where.=" and add_time >= $t";
}
if($end_date){
$t = strtotime($end_date);
$where.=" and add_time <= $t";
}
if($pay_status && $pay_status!= '-1'){
$where.=" pay_status = '$pay_status'";
}
if($shipping_status && $shipping_status!= '-1'){
$where.=" and shipping_status = '$shipping_status'";
}
if($order_status && $order_status!= '-1'){
$where.=" and order_status = '$order_status'";
}
$record_count = $db->getOne("SELECT COUNT(*) FROM " .$ecs->table('order_info'). " WHERE user_id = '$user_id' $where");
$pager = get_pager('user.php', array('act' => $action,'order_status'=>$order_status,'order_sn'=>$order_sn,'consignee'=>$consignee,'start_date'=>$start_date,'end_date'=>$end_date,'pay_status'=>$pay_status,'shipping_status'=>$shipping_status), $record_count, $page);
$orders = get_user_orders($user_id, $pager['size'], $pager['start']);
$merge = get_user_merge($user_id);
$smarty->assign('os_list', get_status_list('order'));
$smarty->assign('ps_list', get_status_list('payment'));
$smarty->assign('ss_list', get_status_list('shipping'));
$smarty->assign('merge', $merge);
$smarty->assign('pager', $pager);
$smarty->assign('orders', $orders);
$smarty->display('user_transaction.dwt');
在分页模板中,传递要查询的参数。
2:模板中增加以下程序。用于搜索表单
<link href="js/calendar/calendar.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/calendar.php"></script>
<tr align="center">
<td bgcolor="#ffffff" colspan="5"><div align="left">订单编号
<input type="hidden" name="act" value="order_list">
<input type="text" name="order_sn"><br>
收货人姓名
<input type="text" name="consignee">
<br>
下单时间 <input name="start_date" value="{$start_date}" style="width:80px;" onclick="return showCalendar(this, '%Y-%m-%d', false, false, this);" />
-
<input name="end_date" value="{$end_date}" style="width:80px;" onclick="return showCalendar(this, '%Y-%m-%d', false, false, this);" />
<br>
订单状态: <select name="order_status" id="select9">
<option value="-1">请选择</option>
{html_options options=$os_list selected=-1}
</select>
付款状态: <select name="pay_status" id="select11">
<option value="-1">请选择</option>
{html_options options=$ps_list selected=-1}
</select>
发货状态: <select name="shipping_status" id="select10">
<option value="-1">请选择</option>
{html_options options=$ss_list selected=-1}
</select> <input type="submit" value="搜索"></div></td>
</tr>
3:将以下搜索条件加到搜索函数中去。在includes/lib_transaction.php中ecshop函数get_user_orders()中
$order_sn = isset($_REQUEST['order_sn'])?$_REQUEST['order_sn']:'';
$consignee = isset($_REQUEST['consignee'])?$_REQUEST['consignee']:'';
$start_date = isset($_REQUEST['start_date'])?$_REQUEST['start_date']:'';
$end_date = isset($_REQUEST['end_date'])?$_REQUEST['end_date']:'';
$pay_status = isset($_REQUEST['pay_status'])?$_REQUEST['pay_status']:'';
$shipping_status = isset($_REQUEST['shipping_status'])?$_REQUEST['shipping_status']:'';
$order_status = isset($_REQUEST['order_status'])?$_REQUEST['order_status']:'';
$where ="";
if($order_sn){
$where.=" and order_sn ='$order_sn'";
}
if($consignee){
$where.=" and consignee = '$$consignee'";
}
if($start_date){
$t = strtotime($start_date);
$where.=" and add_time >= $t";
}
if($end_date){
$t = strtotime($end_date);
$where.=" and add_time <= $t";
}
if($pay_status && $pay_status!= '-1'){
$where.=" pay_status = '$pay_status'";
}
if($shipping_status && $shipping_status!= '-1'){
$where.=" and shipping_status = '$shipping_status'";
}
if($order_status && $order_status!= '-1'){
$where.=" and order_status = '$order_status'";
}
|