三级地域(2013官方地域资料)ajax代码

浏览:1005 发布日期:2013/07/25 分类:技术分享 关键字: 地域
模板:<script type="text/javascript">
 prov();
</script>
<form id="form2">
<ul>
  <li>省份<select id="state" name="state_id" onChange="ProvinceOnChange()" ></select></li>
  <li>城市<select id="city" name="city_id"  onChange="CityOnChange()"></select></li>
  <li>區域<select id="area" name="area_id"  onChange="AreaOnChange()"></select></li>
  <li>二级區域<select id="areab" name="areab_id"  onChange="AreabOnChange()"></select></li>
</ul>
<input type="button" onClick="areabsubmit()"  value="提  交" />
js:function prov(defaultID){
    var element="";
     $.ajax({
          url:'/Worker/prov',//这里是请求省份的地址
          type:'POST',
          dataType:'text',
          error:function(){
          },
          success:function(data){
              var jsonList=eval("("+data+")");
              if(jsonList==null){
                  $("#prov").html("<option value='0'>全部</option>");
                  return false;
              }
              else{
                  for(var i=0;i<jsonList.length;i++){
                  element=element+"<option value="+jsonList[i]['prov_id']+">"+jsonList[i]['prov']+"</option>";
                  }
                  $("#state").html(element);  
              }
              if(defaultID =="true"){
                  setoption();
              }
              ProvinceOnChange(defaultID);
              return false;
             }
             /*
             var element=element+"<option value="+zonelist.zone_id+">"+zonelist.zone_name+"</option>";
             document.getElementById("zone").innerHTML=element;*/
      });
}
function ProvinceOnChange(defaultID){
    $("#city").html("<option></option>");
    var element="";
    var id=$("#state");
    $.ajax({
          url:'/Worker/city',//这里是请求城市的地址
          type:'POST',
          data:{id:id.val()},
          dataType:'text',
          error:function(){
          },
          success:function(data){
              var jsonList=eval("("+data+")");
              if(jsonList==null){
                  $("#city").html("<option value='0'>全部</option>");
                  return false;
              
              }
              else{
                  for(var i=0;i<jsonList.length;i++){
                  element=element+"<option value="+jsonList[i]['city_id']+">"+jsonList[i]['city']+"</option>";
                  }
                  $("#city").html(element);
                  
              }
              if(defaultID =="true"){
                  setoption();
              }
              CityOnChange(defaultID);
              return false;
             }
             /*
             var element=element+"<option value="+zonelist.zone_id+">"+zonelist.zone_name+"</option>";
             document.getElementById("zone").innerHTML=element;*/
      });
}
function CityOnChange(defaultID){
    $("#area").html("<option></option>");
    var element="";
    var id=$("#city");
    $.ajax({
          url:'/Worker/area',//这里是区域的地址
          type:'POST',
          data:{id:id.val()},
          dataType:'text',
          error:function(){
          },
          success:function(data){
              var jsonList=eval("("+data+")");
              if(jsonList==null){
                  $("#area").html("<option value='0'>全部</option>");
                  return false;
              
              }
              else{
                  for(var i=0;i<jsonList.length;i++){
                  element=element+"<option value="+jsonList[i]['area_id']+">"+jsonList[i]['area']+"</option>";
                  }
                  $("#area").html(element); 
                  
              }
              if(defaultID == "true"){
                  setoption();
              }
              AreaOnChange(defaultID);
              return false;
             }
             /*
             var element=element+"<option value="+zonelist.zone_id+">"+zonelist.zone_name+"</option>";
             document.getElementById("zone").innerHTML=element;*/
      });
}
function AreaOnChange(defaultID,id){
    if(id!=null){
        var id=id;
    }else{
        var id=$("#area").val();
    }
    $("#areab").html("<option></option>");
    var element="";
      /*
      $.post('/Worker/getzone',{city_id: y},function(data){
          alert(data);
      });*/
      $.ajax({
          url:'/Worker/areab',//这里是请求二级区域的地址
          type:'POST',
          data:{id:id},
          dataType:'text',
          error:function(){
          },
          success:function(data){
              var jsonList=eval("("+data+")");
              if(jsonList==null){
                  $("#areab").html("<option value='0'>无</option>");              
              }
              else{
                  for(var i=0;i<jsonList.length;i++){
                  element=element+"<option value="+jsonList[i]['areab_id']+">"+jsonList[i]['areab']+"</option>";
                  }
                   $("#areab").html(element);
              }
               if(defaultID == "true"){
                  setoption();
              }
              AreabOnChange(defaultID);
              return false;
             }
             /*
             var element=element+"<option value="+zonelist.zone_id+">"+zonelist.zone_name+"</option>";
             document.getElementById("zone").innerHTML=element;*/
      });
}
这个是默认设置js:function checkOption(id,value)
   {
    var select = document.getElementById(id);
    var options = select.options;
    for(var i=0;i<options.length;i++)
    {
     if (options[i].value == value)
     {
      options[i].selected = true;
      break;
     }
    }
}
后台php:public function prov(){
        $prov = M('Prov');
        $result = $prov->cache(true,3600,'xcache')->select();
        echo json_encode($result);
    }
其他类同;

设定默认省份,城市,区域(prov参数必须true,不然setoption不运行):prov("true");
function setoption(){
    checkOption('state','{$info.now_state}');//$info.now_state为省份ID
    checkOption('city','{$info.now_city}');
    checkOption('area','{$info.now_area}');
    
}

附件 Common.zip ( 26.28 KB 下载:33 次 )

最佳答案
评论( 相关
后面还有条评论,点击查看>>