方法一、layui数据表格+TP5
{field:'school',title: '学校', width:120,templet: '<div>{{sotitle(d.hezuodanwei,arr)}}</div>'}
函数:sotitle(d.hezuodanwei,arr),arr=数组
原理:
注意:函数sotitle()一定要放在layui.use(外面
var jiaoxuezhan={$jiaoxuezhan};//上报教学站 数组
function sotitle(id,arr){
var title;
$.each(arr, function (index, obj) {
if(obj.id==id){
title=obj.name;
}
});
if(title==null){
return "";
}else{
return title;
}
};
注意:模板中要引入
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
数组:
//var arr=[{"id":8,"name":"北京理工大学"},{"id":9,"name":"南开大学"}
var arr={$guishu};//取自后台的数据 数组
TP5 php代码:
//归属 列出归属数组 格式[{"id":8,"name":"北京理工大学"},{"id":9,"name":"南开大学"}]
$rs_manage=Db::name('manage')->select();
$i=0;
foreach($rs_manage as $rs){
$guishu[$i]['id'] = $rs['id'];
$guishu[$i]['name'] = $rs['username'];
$i++;
}
$this->assign('guishu',json_encode($guishu));
注意:$this->assign('guishu',json_encode($guishu));
方法二、layui数据表格+TP5
这种方法非常消耗资源,速度很慢,如果读取多个不建议
归属、合作单位 都有对应的表,实现显示对应的中文名称
用layui templet - 自定义模板
html代码:
归属:,{field:'guishu', title: '归属',width:120,templet: '#adminIdTpl_guishu'}
adminIdTpl_guishu模板代码:
<!-- 归属 模板 -->
<script type="text/html" id="adminIdTpl_guishu">
{{# var fn = function(){
$.ajaxSetup({ async: false });
var title;
var id=d.guishu;
var datatablename="manage";
var dname="username";
$.post("{:url('student/schooltableSo')}",{id:id,datatablename:datatablename,dname:dname}, function(data){
title=data;
});
return title;
}; if(true){ }}
{{ fn() }}
{{# } }}
</script>
TP5代码:前端传参数过来,后台查询,然后把结果返回前端
//通用功能 通过ID查询返回结果
public function schooltableSo()
{
$id=input('id');
$datatablename=input('datatablename');//对应表名称
$dname=input('dname');//要取得表中内容的字段名称
if($id && $datatablename){
$rs=Db::name($datatablename)->where('id',$id)->find();
return $rs[$dname];
}else{
return "";
}
}
方法三、其它办法
$res = $r1->select();
foreach($res as $v){
$res2 = $r2->where("pid=".$v['id'])->select();
$v['child'] = $res2;
}
<foreach name="res" item="v">
<div id="div1">
{$v.name}
<if condition="$v['child'] neq ''">
<foreach name="v['child']" item="v2">
<div id="div2">
{$v2.number}
</div>
</foreach>
</if>
</div>
</foreach>