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_xmlhttp 乱码问题解决方法
Aug 07 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
基于php无限分类的深入理解
Jun 02 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
php上传图片类及用法示例
May 11 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 PHP
php工具型代码之印章抠图
Jul 18 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
漂亮的thinkphp 跳转页封装示例
Oct 16 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
python模块之time模块(实例讲解)
2017/09/13 Python
django做form表单的数据验证过程详解
2019/07/26 Python
Python猜数字算法题详解
2020/03/01 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
个人教师自我评价范文
2013/12/02 职场文书
技术总监岗位职责
2013/12/05 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
对祖国的寄语大全
2014/04/11 职场文书
纠纷协议书
2014/04/16 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
二人合伙经营协议书
2014/09/13 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2014年预算员工作总结
2014/12/05 职场文书
我的1919观后感
2015/06/03 职场文书
银行求职信怎么写
2019/06/20 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle