欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-09 08:46:29
本文实例讲述了thinkphp实现的省市区三级联动功能。分享给大家供大家参考,具体如下: 一张表实现省市区三级联动【3409条数据】 1. php代码: pu...

本文实例讲述了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程序设计有所帮助。