thinkPHP实现的省市区三级联动功能示例
2018-09-21 00:07
本文实例讲述了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> </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程序设计有所帮助。