我有调用PHP端点的AJAX / JSON操作。
我从数据库获取数据,需要将其设置为每个字段。
这是Ajax代码:
$.ajax(
{
url: "loadEquipmentDetails",
type: "POST",
data:
{
equipmentID: equipmentIDValue
},
success: function(jsonStr)
{
var data = JSON.parse(jsonStr);
var item1Len = data.item1Name.length;
$('#equipmentIDFilter').val(data.equipmentID);
$('#equipmentNameFilter').val(data.equipmentName);
for(var i=0; i<item1Len; i++)
{
var item1Name = data[i].item1Name;
alert(item1Name);
var newOption = $('<option>baba</option>');
$('#item1IDFilter').append(newOption);
}
}
});
正如您在上面的代码中看到的那样:
$('#equipmentIDFilter').val(data.equipmentID);
$('#equipmentNameFilter').val(data.equipmentName);
运行良好,可以将值设置为该ID。
但为什么价值没有在下面显示:
var newOption = $('<option>baba</option>');
$('#item1IDFilter').append(newOption);
我尝试提醒它警报(item1Name),但没有结果/弹出。
回应结果:
答案 0 :(得分:0)
循环逻辑存在问题。
var item1Len = data.item1Name.length;
稍后你有
for(var i=0; i<item1Len; i++)
{
var item1Name = data[i].item1Name;
alert(item1Name);
var newOption = $('<option>baba</option>');
$('#item1IDFilter').append(newOption);
}
假设data
是一个数组,并且每个项目都有一个键item1Name
我只能假设您的数据如何,但我想它必须是
for(var i=0, iMax = data.options.length; i<iMax; i++)
{
if(data.options[i].hasOwnProperty('item1Name')) {
var item1Name = data.options[i].item1Name;
var newOption = $('<option>${item1Name}</option>');
$('#item1IDFilter').append(newOption);
}
}
更新:将json添加到问题
之后if (data.hasOwnProperty('item1Name')) {
for (var i = 0, iMax = data.item1Name.length; i < iMax; i++) {
var item1Name = data.item1Name[i];
var newOption = $('<option>${item1Name}</option>');
$('#item1IDFilter').append(newOption);
}
}