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

 更新时间:2017年05月05日 11:28:48   作者:zqwang121  
这篇文章主要介绍了thinkPHP实现的省市区三级联动功能,详细分析了thinkPHP实现省市区三级联动功能的详细步骤与相关操作技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

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

相关文章

  • tp5使用layui实现多个图片上传(带附件选择)的方法实例

    tp5使用layui实现多个图片上传(带附件选择)的方法实例

    在以前项目中遇到有上传图片都是用 web Uploader插件上传,因为我现在项目都在使用 layui 所以今天趁着有时间写一个tp5结合layui上传图片的示例,感兴趣的可以了解一下
    2021-10-10
  • Laravel 实现关系模型取出需要的字段

    Laravel 实现关系模型取出需要的字段

    今天小编就为大家分享一篇Laravel 实现关系模型取出需要的字段,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php中的boolean(布尔)类型详解

    php中的boolean(布尔)类型详解

    本文是对php中的boolean(布尔)类型进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10
  • 浅谈PHP调用Webservice思路及源码分享

    浅谈PHP调用Webservice思路及源码分享

    NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService。它是一个开源软件,是完全采用PHP语言编写的、通过HTTP收发SOAP消息的一系列PHP类。NuSOAP的一个优势是不需要扩展库的支持,这种特性使得NuSoap可以用于所有的PHP环境,不受服务器安全设置的影响。 
    2014-06-06
  • 修改apache配置文件去除thinkphp url中的index.php

    修改apache配置文件去除thinkphp url中的index.php

    这篇文章主要介绍了修改apache配置文件去除thinkphp url中的index.php的方法,大家参考使用吧
    2014-01-01
  • PHP-FPM之Chroot执行环境详解

    PHP-FPM之Chroot执行环境详解

    在PHP-FPM中设立chroot,有很好的隔离作用,提高系统安全性,但是要想建立一个合理的PHP-FPM Chroot环境难度有点大,比用debootstrap等工具建立还要麻烦,这篇文章就详细介绍了PHP-FPM之Chroot执行环境,需要的朋友可以参考下。
    2015-08-08
  • thinkPHP简单实现多个子查询语句的方法

    thinkPHP简单实现多个子查询语句的方法

    这篇文章主要介绍了thinkPHP简单实现多个子查询语句的方法,结合实例形式对比分析了thinkPHP中子查询语句的具体实现技巧,需要的朋友可以参考下
    2016-12-12
  • 落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码

    落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码

    落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码...
    2006-12-12
  • laravel返回统一格式错误码问题

    laravel返回统一格式错误码问题

    在使用yii和laravel的过程中,两个框架对web-api都非常友好,也都对restful做了不同程度的支持,但是还是遇到了一些问题,下面以laravel6.4为例,简单描述下我遇到的问题,需要的朋友参考下吧
    2019-11-11
  • ThinkPHP自定义Redis处理SESSION的实现方法

    ThinkPHP自定义Redis处理SESSION的实现方法

    这篇文章主要介绍了ThinkPHP自定义Redis处理SESSION的实现方法,结合实例形式分析了ThinkPHP相关数据库配置与自定义Redis处理session的实现技巧,需要的朋友可以参考下
    2016-05-05

最新评论