下面是程序的核心代码(现在已经好了) 下面的是错误的代码 觉得老师解释的不清楚问问大家
<script type="text/javascript">
   $(function(){
   var a;
   SelectData.selectDataByInputValue(function(provinceData){
   a=provinceData[0];
   for(var i=0;i<provinceData.length;i++){
   if(i==0){
   $("<option value="+provinceData[i]+" selected='selected'>"+provinceData[i]+"</option>").appendTo("#province");
   }else{
   $("<option value="+provinceData[i]+">"+provinceData[i]+"</option>").appendTo("#province");
   }
   }
  
   })
   SelectData.selectDataByProvince(a,function(cityData){
   alert(a);
   for(var j=0;j<cityData.length;j++){
   if(j==0){
   $("<option value="+cityData[j]+"selected='selected'>"
   +cityData[j]+"</option>").appendTo("#city");
   }else{
   $("<option value="+cityData[j]+">"
   +cityData[j]+"</option>").appendTo("#city");
   }
   }
   })
  
   })
  <body>
<select id="province" onchange="change()"></select>
<select id="city"></select>
</body>
data是从数据库返回的数据 服务器是arrayList的 
左边是省份 右边是城市  我的省份出来了 但是城市不能出来  a是第一个省份 我想通过他查询城市  a 我用alert 显示了  但是拿到java的业务方法就是null 不能获取数据   老师解释说上面的两个dwr方法调用时同时进行的  所以a得不到 我觉得好像不是这么回事吧   希望大家帮帮忙  ?

解决方案 »

  1.   

    老师说的没错,异步调用的时候,第一个是否走完不影响第二个是否走,同步的时候,第一个走完前,锁定画面,然后才依次调用其他的。你不要将SelectData.selectDataByInputValue 和 SelectData.selectDataByProvince写在一个function中,单独写两个,每个独自调用自己的。
      

  2.   

    恩恩 谢谢你了啊  我在一个培训机构 现在差不多要学完了 c java sqlserver oracle
     html  css javaScript servlet ajax jquery struts涉及的很多 前台的东西讲的很快 也 没太多时间吸收  就这个问题 昨天晚上2点  我就郁闷了  在页面上弹出来了 但是传到我的select方法里就是null了  原来是这样啊  谢谢了
      

  3.   

    我还是把代码拿上来<%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <link rel="styleSheet" href="cs/jquery-ui-1.8.17.custom.css">
    <script type="text/javascript" src="JS/jquery-1.7.1.js"></script>
    <script type="text/javascript" src="JS/jquery-ui-1.8.17.custom.min.js"></script>
    <script type='text/javascript' src='/SelectDemo/dwr/interface/SelectData.js'></script>
       <script type='text/javascript' src='/SelectDemo/dwr/engine.js'></script>
        <script type='text/javascript' src='/SelectDemo/dwr/util.js'></script>
       <script type="text/javascript">
       $(function(){
       var a;
       SelectData.selectDataByInputValue(function(provinceData){
       a=provinceData[0];
       for(var i=0;i<provinceData.length;i++){
       if(i==0){
       $("<option value="+provinceData[i]+" selected='selected'>"+provinceData[i]+"</option>").appendTo("#province");
       }else{
       $("<option value="+provinceData[i]+">"+provinceData[i]+"</option>").appendTo("#province");
       }
       }
      
       })
       SelectData.selectDataByProvince(a,function(cityData){
       alert(a);
       for(var j=0;j<cityData.length;j++){
       if(j==0){
       $("<option value="+cityData[j]+"selected='selected'>"
       +cityData[j]+"</option>").appendTo("#city");
       }else{
       $("<option value="+cityData[j]+">"
       +cityData[j]+"</option>").appendTo("#city");
       }
       }
       })
      
       })
      
       //下拉列表选项发生变化时触发的事件
       function change(){
       var shen=$("#province").val();
       //alert(shen);
       $("#city").empty();
       SelectData.selectDataByProvince(shen,function(cityData){
       for(var j=0;j<cityData.length;j++){
       if(j==0){
       $("<option value="+cityData[j]+"selected='selected'>"
       +cityData[j]+"</option>").appendTo("#city");
       }else{
       $("<option value="+cityData[j]+">"
       +cityData[j]+"</option>").appendTo("#city");
       }
       }
       })
       }
       </script>
    </head>
    <body>
    <select id="province" onchange="change()"></select>
    <select id="city"></select>
    </body>
    </html>