>  기사  >  백엔드 개발  >  thinkPHP로 구현한 지방자치단체의 3단계 연계 기능 예시

thinkPHP로 구현한 지방자치단체의 3단계 연계 기능 예시

不言
不言원래의
2018-06-06 15:58:401929검색

이 글에서는 thinkPHP가 구현하는 도, 자치단체의 3단계 연계 기능을 주로 소개하고, 도, 자치단체의 3단계 연계 기능을 구현하기 위한 thinkPHP의 세부 단계와 관련 운영 기술을 자세히 분석하여 도움이 필요한 친구들이 참고할 수 있도록 하겠다.

이 글에서는 thinkPHP에서 구현한 지방자치단체의 3단계 연계 기능에 대한 예시를 설명하고 있습니다. 참고용으로 공유해 주세요. 세부 사항은 다음과 같습니다.

하나의 테이블로 3단계의 지방자치단체 연결을 구현합니다. [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. :

<select name="province" id="province" onchange="loadRegion(&#39;province&#39;,2,&#39;city&#39;,&#39;{:U(&#39;Index/getRegion&#39;)}&#39;);">
  <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(&#39;city&#39;,3,&#39;town&#39;,&#39;{:U(&#39;Index/getRegion&#39;)}&#39;);">
 <option value="0">市/县</option>
</select>
<select name="town" id="town">
 <option value="0">镇/区</option>
</select>

3. 자바스크립트 코드:

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=&#39;0&#39;>请选择</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 &#39;0&#39;,
 `name` varchar(120) DEFAULT NULL,
 `type` tinyint(1) DEFAULT &#39;2&#39;,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3410 DEFAULT CHARSET=utf8;

5.

관련 권장 사항:

ThinkPHP에 내장된 ThinkAjax를 사용하여 비동기 전송 기술을 구현하는 방법

Ajax를 사용하여 ThinkPHP에서 json 데이터를 수신하는 방법

위 내용은 thinkPHP로 구현한 지방자치단체의 3단계 연계 기능 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.