如何将getJSON结果传递到输入框中

时间:2013-04-09 21:36:47

标签: javascript jquery json

我正在尝试使用$ .getJSON使用我的数据库中最后一条记录中的数据填充from。 GET返回JSON但我无法获取数据来填充字段。我对此非常感兴趣。

$.getJSON("loadloads.php", function (data) {
    document.getElementById("LoadNumber").innerHTML = data.LoadNumber
});

这是从firebug复制的JSON。

[{
    "value": {
        "LoadNumber": "227303",
        "OrderDate": "2013-04-09",
        "ShipDate": "2013-04-09",
        "ShipTime": "12:00:00",
        "DeliveryDate": "2013-04-10",
        "DeliveryTime": null,
        "PurchaseOrderNumber": "0002323803",
        "CustomerId": "200540",
        "Rate": "801.08",
        "EmployeeId1": "1",
        "EmployeeId2": "1",
        "CarrierId": "201383",
        "CarrierRate": "700",
        "Tarp": "NO",
        "Status": "Dispatched",
        "Notes": "Pls check in as an All Points Inc. carrier.  V-boards reg.  Shipper tracking we need Proof of delivery faxed or called in A.S.A.P (within 24 hours)  Need printed name of person signing for load.  Must haul 48K min.",
        "LoadTypeId": "1",
        "LoadType": "Flatbed",
        "BillingNotes": "608.48 + 192.60",
        "InvoiceDate": null,
        "PayDate": null,
        "DestinationNext": null,
        "Covered": "0",
        "CompanyName": "GAF Materials Corp.",
        "CarrierName": "Daniel Zamora",
        "FN1": "Craig",
        "FN2": "Craig"
    }
}]

这是输入框

<label for="LoadNumber">Load Number :
    <input type="text" size="12" id="LoadNumber" Name="LoadNumber" tabindex="-1" />
</label>

1 个答案:

答案 0 :(得分:3)

JSON定义了一个数组,它有一个条目,它是一个对象,它有一个属性value,它是一个具有一堆属性的对象,其中LoadNumber是一个。另外,由于LoadNumberinput元素,因此您使用.value而不是.innerHTML

所以而不是

document.getElementById("LoadNumber").innerHTML = data.LoadNumber

应该是:

document.getElementById("LoadNumber").value = data[0].value.LoadNumber;

(分号不是绝对必要的,但我强烈建议不要依赖分号插入的恐怖。)

data将数组作为一个整体引用,因此[0]为我们提供了第一个条目,然后.value为我们提供了该对象的value属性,并.LoadNumber 1}}为我们提供 <{em>对象的LoadNumber属性。更详细地说:

var firstEntry = data[0];
var valueObject = firstEntry.value;
document.getElementById("LoadNumber").value = valueObject.LoadNumber;

当然,由于您使用的是jQuery,因此可以改为使用val

$("#LoadNumber").val(data[0].value.LoadNumber);