tp5与layui框架实现二级联动加分页效果
最终实现效果图
前台html代码
{layout name="common/header_footer" /}
<div class="admin-main">
<div class="layui-tab layui-tab-brief">
<ul class="layui-tab-title">
<li class="layui-this">兑换信息管理</li>
</ul>
</div>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<form action="{:url("index")}" class="layui-form" method="post">
<div class="layui-inline">
<input class="layui-input" placeholder="开始日" name="startTime" {if isset($date_start_time_show) } value="{$date_start_time_show}" {/if} onclick="layui.laydate({elem: this, istime: true})">
</div>
<div class="layui-inline">
<input class="layui-input" placeholder="截止日" name="endTime" {if isset($date_end_time_show) } value="{$date_end_time_show}" {/if} onclick="layui.laydate({elem: this, festival: true})">
</div>
<div class="layui-input-inline">
<select name="mch_id" lay-filter="mch_id" lay-verify="required" lay-search="">
<option value="">请选择所属法人</option>
{volist name="mch_info" id="mch"}
<option {if isset($mch_info_id) && $mch_info_id == $mch.id} selected {/if} value="{$mch.id}">{$mch.name}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline">
<select name="store_id" lay-verify="" lay-search="">
<option value="">请选择所门店</option>
{if isset($store_info_id)}
{volist name="store_info_id" id="store_info"}
<option {if $data_store_id == $store_info.id} selected {/if} value="{$store_info.id}">{$store_info.username}</option>
{/volist}
{/if}
</select>
</div>
<div class="layui-inline">
<button class="layui-btn" lay-submit >搜索</button>
</div>
</form>
</div>
<table class="layui-table">
<thead>
<tr>
<th style="width:50px">序号</th>
<th>门店</th>
<th>兑换时间</th>
<th>商品名称</th>
<th>订单状态</th>
<th>商品金额</th>
<th>短信验证码</th>
</tr>
</thead>
<tbody>
{if isset($data)}
{volist name="cards" id="card" key="k"}
<tr>
<td>{$k+($page-1)*10}</td>
<td>{$card.store_name}</td>
<td>{$card.create_time}</td>
<td>{$card.goods_name}</td>
<td>{if $card.order_state==1}成功{elseif $card.order_state==0}未知{else}失败{/if}</td>
<td>{$card.card_total_fee}</td>
<th>{$card.sms_code}</th>
</tr>
{/volist}
{/if}
</tbody>
</table><br>
//分页
{if isset($data)}
<div style="float: right;">
<div id="page" class="page">
{$cards->render()}
</div>
</div>
{/if}
</div>
</div>
<script>
layui.use("element", function(){
var $ = layui.jquery
,element = layui.element(); //Tab的切换功能,切换事件监听等,需要依赖element模块
});
</script>
<script>
layui.use(["form", "layedit", "laydate"], function(){
//时间
var form = layui.form()
,layer = layui.layer
,layedit = layui.layedit
,laydate = layui.laydate
,$ = layui.jquery;
//下拉框
var form = layui.form();
form.on("select(mch_id)", function(data) {
var mch_id = data.value;
$.ajax({
type:"POST",
url:"{:url("get_store")}",
dataType:"json",
data:{"mch_id":mch_id},
success:function(e){
//empty() 方法从被选元素移除所有内容
$("select[name="store_id"]").empty();
var html = "<option value="0">请选择所属门店</option>";
$(e).each(function (v, k) {
html += "<option value="" + k.id + "">" + k.username + "</option>";
});
//把遍历的数据放到select表里面
$("select[name="store_id"]").append(html);
//从新刷新了一下下拉框
form.render("select");
}
})
})
});
</script>
后台控制器中的代码
public function index()
{
//form表单是post提交,但是点击第二页是get提交,所以这里接收的时候不用get或post
$data = input();
//Array ( [startTime] => 2017-12-01 [endTime] => 2017-12-20 [mch_id] => 2 [store_id] => 79 )
if (!empty($data)) {
$page = request()->param("page");
$page || $page = 1;
//将发送过来的门店id发送回前台与再次查询出来的多个门店作比较是否相等
$data_store_id = $data["store_id"];
(
$date_start_time = strtotime($data["startTime"]);
$date_end_time = strtotime($data["endTime"]) + 86400;
)
$date_start_time_show = date("Y-m-d",$data_start_time);
$date_end_time_show = date("Y-m-d",$data_end_time);
$mch = new MchModel(); $store = new StoreModel();
$store_info = $store->select(); $mch_info = $mch->select();
//$mch_info_id返回到前台的作用是当点击搜索的时候保留选中的商户
$mch_info_id = $mch->where("id",$data["mch_id"])->find();
//$store_info_id返回到前台的作用是当点击搜索的时候保留选中的门店
$store_info_id = $store->where("sub_mch_id",$data["mch_id"])->select();
$yd_order = new YdOrderModel();
$cards = $yd_order->where("store_id", $data["store_id"])
->whereTime("create_time", "between", ["$date_start_time", "$date_end_time"])
->order("yd_order_id desc")
->paginate(10, false,["query" => $data]);
foreach ($cards as $k=>$v){
foreach ($store_info as $kk=>$vv){
if($v["store_id"] == $vv["id"]){
$cards[$k]["store_name"] = $vv["username"];
}
}
}
$this->assign([
"cards" => $cards,
"mch_info" => $mch_info,
"mch_info_id" => $mch_info_id["id"],
"store_info_id" => $store_info_id,
"data_store_id" => $data_store_id,
"data" => $data, "page" => $page,
"date_start_time_show" => $date_start_time_show,
"date_end_time_show" => $date_end_time_show ]);
}else {
$mch = new MchModel();
$mch_info = $mch->select();
$this->assign([
"mch_info" => $mch_info
]);
}
return $this->fetch();
}
//ajax获取的门店 public function get_store(){
$mch_id = input("post.mch_id");
$store = new StoreModel();
$store_info = $store->where("sub_mch_id",$mch_id)->select();
echo json_encode($store_info);die;
}where条件查询 (一维数组作为条件)
$mch_info=$mch->where("legal_person_id",$data["legal_person_id"])->select();
foreach($mch_info as $k=>$v){
$query_sub_mch_id[] = $v["sub_mch_id"];
}
order_info=$order->where("sub_mch_id","in",$query_sub_mch_id)->whereTime("create_time","between",[$date_start_time,$date_end_time] ->paginate("10",false,["query"=>$data]);//tp5框架时间戳转换成时间
<td> {$activity.start_time|date="Y-m-d H:i:s",###} </td>
//框内的内容不可改变 加 disableed="true"
<div class="layui-tab-content"><div class="layui-form-item">
<label class="layui-form-label">开始时间</label><div class="layui-input-block"><input type="text" name="activity_name" style="width: 320px" value="{$activity.start_time|date="Y-m-d H:i:s",###}" class="layui-input" disabled="true"></div></div></div>
//将字符串转化成数组
["p-H7SwQ8LtOgegUeKLzIcgN7VyI8","p-H7SwXaJj4Hx2FKTxvoHgillmF0","p-H7SwWc5VpMRXVep4ZKbOjvTDvI","p-H7SwZm2mefYj3Sg7ONirfVaBg8","p-H7SwWkJCRYwoOSF_u5C8kVZo_U"]
这是json格式 所以第二种会很好
两种方法
一
$upgrade_send_card_id_list_info= $activity_info["upgrade_send_card_id_list"];
$upgrade_send_card_id_list_left = ltrim($upgrade_send_card_id_list_info,"[");
$upgrade_send_card_id_list_right = rtrim($upgrade_send_card_id_list_left,"]");
$upgrade_send_card_id_list_data = explode(",",$upgrade_send_card_id_list_right);
$upgrade_send_card_id_list=str_replace(""","", $upgrade_send_card_id_list_data);二
$demo = json_decode("$upgrade_send_card_id_list_info");
效果一样
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: 给网页标题加入logo图标
- 下一篇:没有了
