通过城市找省份 城市 地市 三级联动 大概代码

你后台把json数组转字符串之后不输出放进request对象中干嘛呢?我用的另一种方法实现的三级联动,省市区的:

<script type= "text/javascript" >
      jQuery(document).ready( function ($){
          $( "#province" ).change( function (){
              var  pid=$( "#province" ).val();
              var  sectionObj=document.getElementById( "section" );
              sectionObj.length=0;
              sectionObj.options[0]= new  Option( "请选择区县" ,-1);
             sectionObj.value=-1;
              if (pid!=-1){
                  var  url= "/service_order/getCity.htm" ;
                  var  data={ "provinceId" :pid};
                   $.post(url,data, function (result){
                       var  cityObj=document.getElementById( "city" );
                       cityObj.length=0;
                       var  aryData= null ;
                       if (!!(window.attachEvent && !window.opera)){ 
                       //ie 
                          aryData=execScript(result); 
                        } else
                       //not ie 
                          aryData=eval(result);
                        }
                       cityObj.options[0]= new  Option( "请选择城市" ,-1);
                       for ( var  i=0;i<aryData.length;i++){
                           var  city=aryData[i];
                           cityObj.options[i+1]= new  Option(city.name,city.id);
                       }
                   });
              } else {
                  var  cityObj=document.getElementById( "city" );
                  cityObj.length=0;
                  cityObj.options[0]= new  Option( "请选择城市" ,-1);
                  cityObj.value=-1;
              }
                
          });
          $( "#city" ).change( function (){
              var  cid=$( "#city" ).val();
              if (cid!=-1){
                  var  url= "/service_order/getSection.htm" ;
                  var  data={ "cityId" :cid};
                   $.post(url,data, function (result){
                       var  sectionObj=document.getElementById( "section" );
                       sectionObj.length=0;
                       var  aryData= null ;
                       if (!!(window.attachEvent && !window.opera)){ 
                       //ie 
                          aryData=execScript(result); 
                        } else
                       //not ie 
                          aryData=eval(result);
                        }
                       sectionObj.options[0]= new  Option( "请选择区县" ,-1);
                       for ( var  i=0;i<aryData.length;i++){
                           var  section=aryData[i];
                           sectionObj.options[i+1]= new  Option(section.name,section.id);
                       }
                   });
              } else {
                  var  sectionObj=document.getElementById( "section" );
                  sectionObj.length=0;
                  sectionObj.options[0]= new  Option( "请选择区县" ,-1);
                  sectionObj.value=-1;
              }
                
          });
      });
  </script>

服务端

public  void  getCity()  throws  Exception {
         HttpServletResponse res = ServletActionContext.getResponse();
         PrintWriter out = res.getWriter();
         try  {
             Map<String, Object> searchMap =  new  HashMap<String, Object>();
             searchMap.put( "provinceId" , Long.parseLong(provinceId));
             cityList = som.getObjectsByParams(CodeoemBncCity. class , searchMap,
                     null );
             if  (cityList !=  null ) {
                 Gson gson =  new  Gson();
                 String result = gson.toJson(cityList);
                 out.print(result);
             else  {
                 System.out.println( "没有获取到城市信息:no citys" );
             }
         catch  (Exception e) {
             e.printStackTrace();
         } finally {
             out.flush();
             out.close();
         }
     }

上次一家伙要三级联动我给贴上去了,谁知道没通过规范没发出去,刚好给你贴过来,注意交互部分就好了

追问
选择省份后出现400错误是怎么回事呢?传递参数有问题?section是什么啊?
回答
请求有问题,把dataType的json改成JSON,data的参数格式我记得是{"":""}这样的吧,记不大清除了,你可以试试
提问者评价
谢谢!






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值