本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答
圖片精選