我正在使用此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'] ...例如。感谢。
答案 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");
});