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 array_unique之后json_encode需要注意
Jan 02 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 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代码收集表单内容并写入文件的代码
2012/01/29 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
Python代理抓取并验证使用多线程实现
2013/05/03 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
Python连接Redis的基本配置方法
2018/09/13 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
Weblogic的布署方式
2013/08/23 面试题
写好自荐信需做到的5要点
2014/03/07 职场文书
给学校的建议书
2014/03/12 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
四十九个javascript小知识实用技巧
2021/11/20 Javascript
MySQL自定义函数及触发器
2022/08/05 MySQL