Maison  >  Article  >  développement back-end  >  Exemple de fonction de liaison à trois niveaux des provinces et des municipalités mise en œuvre par thinkPHP

Exemple de fonction de liaison à trois niveaux des provinces et des municipalités mise en œuvre par thinkPHP

不言
不言original
2018-06-06 15:58:401928parcourir

Cet article présente principalement la fonction de liaison à trois niveaux des provinces et des municipalités mise en œuvre par thinkPHP. Il analyse les étapes détaillées et les techniques de fonctionnement associées de thinkPHP pour mettre en œuvre la fonction de liaison à trois niveaux des provinces et des municipalités. Les amis dans le besoin peuvent se référer. à cela

L'exemple de cet article décrit la fonction de liaison à trois niveaux des provinces et des municipalités mise en œuvre par thinkPHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Une table réalise un couplage à trois niveaux des provinces et des municipalités [3409 éléments de données]

1. :

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. Code HTML :

<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.

4. Code SQL :
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));
      }
    }
  );
}

5. Fichier TP_tree.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;
.

Recommandations associées :

Utilisation de ThinkAjax intégré à ThinkPHP pour implémenter la technologie de transmission asynchrone


Utilisation de la réception ajax dans ThinkPHP json méthode de données

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn