2013-04-11 8 views
0

У меня есть 3 вызова ajax один за другим, который вызывает их соответствующие веб-службы. Эти веб-службы возвращают объекты parseJSON. Во всех 3 вызовах ajax я заполняю выпадающий список с этим значением объекта parseJSON. Но он заполняет только 1-й и 3-й списки, а не 2-й. Так в чем проблема?jquery multiple ajax call with parsejson

Мой код выглядит следующим образом.

<script type="text/javascript"> 


$(document).ready(function() { 

    //For test 
    $ConUrl = 'http://mydomain.com/WebService.asmx/FetchCountry?callback=parseJSON?'; 
    $StateUrl = 'http://mydomain.com/WebService.asmx/FetchState?callback=parseJSON?'; 
    $CityUrl = 'http://mydomain.com/WebService.asmx/FetchCity?callback=parseJSON?'; 

    populateCountries(); 

}); // ready end 


    function populateCountries() { 

     $.ajax({ 
      type: 'GET', 
      url: $ConUrl, 
      processData: true, 
      data: {}, 
      dataType: "jsonp", 
      jsonpCallback: 'parseJSON', 
      success: function (data) { 
       var html = '<option value="0">All Regions</option>'; 
       var len = data.length; 
       for (var i = 0; i < len; i++) { 
        html += '<option value="' + data[i] + '">' + data[i] + '</option>'; 
       } 
       $('select#ddlCountry').append(html); 
       populateStates(); 

      }, 
      error: function (data) { } 
     }); 


    } 

    function populateStates() { 

     $.ajax({ 
      type: 'GET', 
      url: $StateUrl, 
      processData: true, 
      data: {}, 
      dataType: "jsonp", 
      jsonpCallback: 'parseJSON', 
      success: function (data1) { 
       var html1 = '<option value="0">All States</option>'; 
       var len1 = data1.length; 
       for (var j = 0; j < len1; j++) { 
        html1 += '<option value="' + data1[j] + '">' + data1[j] + '</option>'; 
       } 
       $('select#ddlState').append(html1); 
       populateCities(); 

      }, 
      error: function (data1) { } 
     }); 


    } 

    function populateCities() { 

     $.ajax({ 
      type: 'GET', 
      url: $CityUrl, 
      processData: true, 
      data: {}, 
      dataType: "jsonp", 
      jsonpCallback: 'parseJSON', 
      success: function (data2) { 
       var html2 = '<option value="0">All Cities</option>'; 
       var len2 = data2.length; 
       for (var k = 0; k < len2; k++) { 
        html2 += '<option value="' + data2[k] + '">' + data2[k] + '</option>'; 
       } 
       $('select#ddlCity').append(html2); 

      }, 
      error: function (data2) { } 
     }); 
    } 
</script> 
+0

Кто может помочь в этом? –

ответ

0

проблема решаемая ... вопрос был не в JQuery .... это было в теге ....

я писал следующим образом ....

<select id="ddlCountry" class="searchbox roundedcornerstyle" style="width:160px;" /> 
<select id="ddlState" class="searchbox roundedcornerstyle" style="width:160px;" /> 
<select id="ddlCity" class="searchbox roundedcornerstyle" style="width:160px;" /> 

После изменения выше строк, как показано ниже, он GIT решил ...

<select id="ddlCountry" class="searchbox roundedcornerstyle" style="width:160px;"></select> 
<select id="ddlState" class="searchbox roundedcornerstyle" style="width:160px;"></select> 
<select id="ddlCity" class="searchbox roundedcornerstyle" style="width:160px;"></select> 

это действительно занимает слишком много времени, чтобы найти это .. но в конце концов он решил ...