云中漫步 发表于 2015-8-30 11:28:49

PHP地区四级联动(thinkphp)

<html>
<head></head>
<js href="/4liandong__PUBLIC__/Js/jquery-1.5.js" />
<body onload="region_default();">
<script type="text/javascript">
//设置默认,页面加载时恢复默认选项。
function region_default() {
    $("option").attr('selected','selected');
}
function setregion(num,address_id) {
   var next=num+1;
   $.ajax({
      type:'POST',
      //设置json格式,接收返回数组。
      dataType:'json',
      url:'__APP__/index/get_region/',
      //ajax传递当前选项的value值,也就是当前的region_id。
      data:'region_id='+$('#region_'+num+'_'+address_id).val(),
      success:function(msg) {
      //如果返回值不为空则执行。
if (msg!=null) {
            var option_str='';
            //循环书写下一个select中要添加的内容。并添加name标记。
for (var i=0; i<msg.length; i++) {
               option_str+='<option name="region_'+next+'"value="'+msg.region_id+'">'+msg.region_name+'</option>';
            }
            //删除下一个select中标记name为next的内容。
            $("option").remove();
            //向下一个select中添加书写好的内容。
            $('#region_'+next+'_'+address_id).append(option_str);
         }else{
                //如果返回值为空,则移除所有带标记的option,恢复默认选项。
for (var i=next; i<=4; i++) {
               $("option").remove();   
                }
         }
      }
   })
}
</script>
<form action="__APP__/index/get_data/" method="post">
<select name="courtry" id="region_0_0" onchange="setregion(0,0)">
<option name="selected" selected='selected' value="-1">请选择(国家)</option>
<foreach name="list" item="v">
<option value="<!--{$v.region_id}-->"><!--{$v.region_name}--></option>
</foreach>
</select>
<select name="province" id="region_1_0" onchange="setregion(1,0)">
<option name="selected" selected='selected' value="-1">请选择(省份)</option>
</select>
<select name="city" id="region_2_0" onchange="setregion(2,0)">
<option name="selected" selected='selected' value="-1">请选择(城市)</option>
</select>
<select name="district" id="region_3_0">
<option name="selected" selected='selected' value="-1">请选择(县)</option>
</select>
<input type="submit" value="提交">
</body>
</html>
  以下是ThinkPHP写的获取数据的方法



    public function get_region() {
       $region_id=$_POST['region_id'];
       $region=D('region');
       $condition['parent_id']=$region_id;
       $list=$region->where($condition)->select();
       echo json_encode($list);
    }
  
页: [1]
查看完整版本: PHP地区四级联动(thinkphp)