首页 > 语言 > PHP > 正文

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

2024-05-04 23:57:08
字体:
来源:转载
供稿:网友

本文实例讲述了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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选