JQuery =>根据一个更新多个选择

时间:2012-02-16 13:13:37

标签: jquery select

我正在使用此JS代码来更新一个选择(区域),而不是另一个(国家/地区)。此代码非常完美且工作正常。我向我的应用程序询问了一系列区域,并以JSON格式进行响应。

我的JS代码:

<script>
$.ajax({
    dataType: "json",
    cache: false,
    url: '/webapp/update_regions/' + id,
    timeout: 2000,
    beforeSend : function(xhr) { xhr.setRequestHeader("Accept", "application/json") },
        success: function(data) {                                        
          // fill regions
          $.each(data, function(i,j) {
            row = "<option value=\"" + j.region.id + "\">" + j.region.name + "</option>";   
            $(row).appendTo("select#region_id");                     
          }); 
        }
      });
</script>

我想根据第一个(国家/地区)更新另一个选择,所以我需要在同一时间更新2个选择。我是否需要执行2个ajax请求(以及获取2个json数组)或者我可以获得一个JSON响应(1个散列有2个数组)并在上面的JS代码中正确管理id?

我的问题:如果我使用此代码得到2个数组的哈希值,那么如何处理响应数据(因此数据是哈希值,而不是数组):

// fill regions
              $.each(data, function(i,j) {
                row = "<option value=\"" + j.region.id + "\">" + j.region.name + "</option>";   
                $(row).appendTo("select#region_id");                     
              });

// fill appellations
$.each(data, function(i,j) {
                    row = "<option value=\"" + j.appellation.id + "\">" + j.appellation.name + "</option>";   
                    $(row).appendTo("select#appellation_id");                     
                  });

事实上,我不知道如何划分JSON哈希...以获取数据['regions']和data ['appellations'] ...例如。感谢。

1 个答案:

答案 0 :(得分:0)

行?使用哈希解决方案非常简单,只需将[“region”]添加到数据

      $.each(data["regions"], function(i,j) {
        row = "<option value=\"" + j.region.id + "\">" + j.region.name + "</option>";   
        $(row).appendTo("select#wine_region_id");                     
      });