thinkPHP实现的省市区三级联动功能示例


Posted in PHP onMay 05, 2017

本文实例讲述了thinkPHP实现的省市区三级联动功能。分享给大家供大家参考,具体如下:

一张表实现省市区三级联动【3409条数据】

1. php代码:

public function index(){
  $province = M('Tree')->where ( array('pid'=>1) )->select ();
  $this->assign('province',$province);
  $this->display();
}
public function getRegion(){
  $Region=M("Tree");
  $map['pid']=$_REQUEST["pid"];
  $map['type']=$_REQUEST["type"];
  $list=$Region->where($map)->select();
  echo json_encode($list);
}

2. HTML代码:

<select name="province" id="province" onchange="loadRegion('province',2,'city','{:U('Index/getRegion')}');">
  <option value="0" selected>省份/直辖市</option><volist name="province" id="vo">
  <option value="{$vo.id}" >{$vo.name}</option></volist>
</select>
<select name="city" id="city" onchange="loadRegion('city',3,'town','{:U('Index/getRegion')}');">
 <option value="0">市/县</option>
</select>
<select name="town" id="town">
 <option value="0">镇/区</option>
</select>

3. javascript代码:

function loadRegion(sel,type_id,selName,url){
  jQuery("#"+selName+" option").each(function(){
    jQuery(this).remove();
  });
  jQuery("<option value=0>请选择</option>").appendTo(jQuery("#"+selName));
  if(jQuery("#"+sel).val()==0){
    return;
  }
  jQuery.getJSON(url,{pid:jQuery("#"+sel).val(),type:type_id},
    function(data){
      if(data){
        jQuery.each(data,function(idx,item){
          jQuery("<option value="+item.id+">"+item.name+"</option>").appendTo(jQuery("#"+selName));
        });
      }else{
        jQuery("<option value='0'>请选择</option>").appendTo(jQuery("#"+selName));
      }
    }
  );
}

4. SQL代码:

DROP TABLE IF EXISTS `tp_tree`;
CREATE TABLE `tp_tree` (
 `id` int(5) unsigned NOT NULL AUTO_INCREMENT,
 `pid` int(5) unsigned NOT NULL DEFAULT '0',
 `name` varchar(120) DEFAULT NULL,
 `type` tinyint(1) DEFAULT '2',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3410 DEFAULT CHARSET=utf8;

5. TP_tree.sql文件点击此处本站下载

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
php自动适应范围的分页代码
Aug 05 PHP
有关PHP性能优化的介绍
Jun 20 PHP
解析PHP正则提取或替换img标记属性
Jun 26 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
PHP双向链表定义与用法示例
Jan 31 PHP
php实现的表单验证类完整示例
Aug 13 PHP
Yii框架的布局文件实例分析
Sep 04 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 PHP
PHP大文件及断点续传下载实现代码
Aug 18 PHP
php str_replace替换指定次数的方法详解
May 05 #PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 #PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 #PHP
php 浮点数比较方法详解
May 05 #PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
May 05 #PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 #PHP
Yii2配置Nginx伪静态的方法
May 05 #PHP
You might like
php下获取http状态的实现代码
2014/05/09 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
Javascript Object 对象学习笔记
2014/12/17 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
比利时家具购买网站:Home24
2019/01/03 全球购物
台湾演唱会订票网站:StubHub台湾
2019/06/11 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
什么是TCP/IP
2014/07/27 面试题
营销与策划专业求职信
2014/06/20 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
给老婆的道歉信
2015/01/20 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server