♦ 最近找省市区得插件,真是好崩溃啊,找的插件大部分都有这样得问题:
♦首先省市区三级联动功能都没问题。
♦最大的问题是区 / 县 数据问题:
♦旧版本的插件,区县数据包含镇级地名,大多都重复城关镇,比如河南省洛阳市下面的区县重复多个城关镇这个地名。
◎第一步:点击下载数据库表
地址库下载:https://www.qazwsx123.icu/ct_areas.sql
◎第二步:运行数据库文件,创建数据表ct_areas
◎第三步:在PHP文件中查询使用
示例代码:
public function ssq_lists(){
$res = Db::table('ct_areas')
->field('parentId,areaId,isShow,areaName')
->where(['isShow'=>1])
->select();
$res = $this->moreList($res,0);
foreach ($res as $k=>$v){
$res[$k]['label'] = $v['areaName'];
$res[$k]['value'] = $v['areaName'];
unset($res[$k]['isShow']);
unset($res[$k]['parentId']);
unset($res[$k]['areaId']);
unset($res[$k]['areaName']);
}
return json(['code' => 200, 'msg' => '获取成功','res'=>$res]);
}
function moreList($arr, $p_id){
//数据层级化,
$r = array();
foreach($arr as $key=>$val){
if($val['parentId'] == $p_id) {
$length = count($r);//0
$r[$length] = $val;
if($t = $this->moreList($arr,$val['areaId'])){//$key
foreach ($t as $a=>$b){
$t[$a]['label'] = $b['areaName'];
$t[$a]['value'] = $b['areaName'];
unset($t[$a]['parentId']);
unset($t[$a]['areaId']);
unset($t[$a]['isShow']);
unset($t[$a]['areaName']);
}
$r[$length]['children'] = $t;
}
}
}
return $r;
}
♦接口返回数据示例