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 相关文章推荐
php数据库连接时容易出错的特殊符号问题
Sep 01 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
PHP使用正则表达式清除超链接文本
Nov 12 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 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函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
基于jquery的图片幻灯展示源码
2012/07/15 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
单链表反转python实现代码示例
2018/02/08 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
JDK安装目录下有哪些内容
2014/08/25 面试题
读书心得体会
2013/12/28 职场文书
明星员工获奖感言
2014/08/14 职场文书
立志成才演讲稿
2014/09/04 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年党委工作总结
2014/11/22 职场文书
校园安全学习心得体会
2016/01/18 职场文书
阿里云日志过滤器配置日志服务
2022/04/09 Servers