我有一个使用以下JSON成功响应的ASMX Web服务:
[{
"Id": 49,
"SupplierName": "Supplier 1"
}, {
"Id": 50,
"SupplierName": "Supplier 2"
}, {
"Id": 51,
"SupplierName": "Supplier 3"
}, {
"Id": 52,
"SupplierName": "Supplier 4"
}]
我试图让我的ajax调用循环遍历这个数组并将结果追加到我表单中的select控件。不幸的是,我对使用ajax还不是很新,但还没有完成。任何指导都会有所帮助。
$.ajax({
type: "POST",
url: "/StockPileDelivery.asmx/PopulateSupplierDdl",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var data = $.parseJSON(msg.d);
$.each(data, function (i, item) {
alert(i);
// $("#dropDownCars").append("<option>" + value.carsName + "</option>");
});
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
},
});
更新 下面是我修改过的AJAX,它返回一个错误说明&#34;不能使用&#39;在&#39;运营商搜索&#39; 158&#39;在
$.ajax({
type: "POST",
url: "/StockPileDelivery.asmx/PopulateSupplierDdl",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var data = msg.d;
$.each(data, function (i, item) {
alert(item.Id);
//$("#Suppliers").append("<option value='" + item.Id + "'>" + item.SupplierName + "</option>");
});
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
},
});
答案 0 :(得分:1)
这里的数据已经是一个对象了,这就是为什么我没有做parseJSON方法的原因。这是一个工作小提琴:
var msg = [{
"Id": 49,
"SupplierName": "Supplier 1"
}, {
"Id": 50,
"SupplierName": "Supplier 2"
}, {
"Id": 51,
"SupplierName": "Supplier 3"
}, {
"Id": 52,
"SupplierName": "Supplier 4"
}];
$(function(){
$.each(msg, function (i, item) {
$("#dropDownCars").append("<option value='"+item.Id+"'>" + item.SupplierName + "</option>");
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dropDownCars">
</select>
&#13;
答案 1 :(得分:0)
从表面上看,你的ajax看起来还不错
查看$ .each文档 - http://api.jquery.com/jquery.each/
函数中的 i
是索引,item是实际值。
alert(item)
(或者更好console.log(item)
)会证实这一点。
你可能想要像
这样的东西$("#dropDownCars").append("<option>" + item.SupplierName+ "</option>");