jQuery AJAX将数据设置为每个字段的多个或单个数据

时间:2017-08-21 12:29:07

标签: json ajax

我有调用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),但没有结果/弹出。

回应结果:

enter image description here

1 个答案:

答案 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);
    }
}