我从服务器得到以下响应:
{ “翠菊”: “3”, “水仙”: “4”, “玫瑰”: “3”, “TOTALITEMS”:10 “totalPrice”: “31.90”} RESPONSE
并且,我想把它放在看起来像这样的表中:
问题是我不知道如何获取值(对于“数量”列)。这是我的代码:
function processServerResponse(data) {
if (data.products.length > 0) {
$("#orderForm").hide();
$("#summaryForm").show();
var html = '';
$.each(data.products, function(key, value) {
html += "<tr><td>"+value.name+"</td><td>"+?????+"</td></tr>"
});
$(html).appendTo("tbody");
$("#totalItems").text(data.totalItems);
$("#totalPrice").text(data.totalPrice);
}
}
在此之前,这就是我的$ .ajax的样子(这是更大的代码,你不必阅读):
$("#orderForm button").click(function (e) {
e.preventDefault();
var formData = $("#orderForm").serialize();
$("#popup").show();
$("body *").not("#popup").css("opacity", 0.5);
$("input").prop("disabled", true);
$.ajax({
url: "http://localhost/",
type: "post",
data: formData,
dataType: "json",
dataFilter: function(data, dataType) {
primljeniOdgovor = $.parseJSON(data);
var cleanData = {
totalItems: primljeniOdgovor.totalItems,
totalPrice: primljeniOdgovor.totalPrice
};
delete primljeniOdgovor.totalItems;
delete primljeniOdgovor.totalPrice;
cleanData.products = [];
for (prop in primljeniOdgovor) {
cleanData.products.push({
name: prop,
quantity: data[prop]
})
}
return cleanData;
},
converters: {
"text json": function(data) {
return data;
}
},
success: function(data) {
processServerResponse(data);
},
complete: function() {
setTimeout(function() {
$("#popup").hide();
$("body *").not("#popup").css("opacity", 1);
$("input").prop("disabled", false);
}, 1500);
}
});
})
我通过value.name从响应中获取名称,但我不知道如何获得该值(数量)?
答案 0 :(得分:1)
您的代码中存在错误。
一定是
cleanData.products.push({
name: prop,
quantity: primljeniOdgovor[prop] //not data[prop]
})
而不是quantity: data[prop]
。 data
只是一个未解析的String对象。 primljeniOdgovor
是包含属性值的已解析对象。