JQuery ajax JSON结果为文本输入值

时间:2014-04-14 12:09:32

标签: javascript jquery ajax json input

我有一个Autocompleter,工作正常,现在我想添加一个“Autofiller” 这意味着,如果我从“自动填充器”中选择一个“公司” 它应该从公司的数据库中获得所有结果。

JSON响应是:

[
    {
        "idfirma": "2222",
        "firmenname": "test",
        "strasse": "test",
        "plz": "",
        "ort": "test",
        "l‌​and": "",
        "webseite": "",
        "region": "",
        "aktiv": "1"
    }
]

到目前为止我得到了什么:

$(document).ready(function() {

    $(function() {
        $( "#firma_neu" ).autocomplete({
            source: "./firma_suche.php3",
            open: function(event, ui) {
                    var firmenname = $("#firma_neu").val();
                    },
            select: function(event, ui) {
                    event.preventDefault();
                    $("#firma_neu").val(ui.item.label);
                    $("#idfirma_neu").val(ui.item.value);

                    // Hier muss der if selected aufruf kommen

                        var dataString = 'firmenID='+ ui.item.value ;
                          $.ajax({
                            type: "POST",
                            data:  dataString,
                            url: "./loadFirma.php",
                            dataType: "json",

                             success: function(result){

                              $("#Strasse1").val(result.strasse);
                              $("#PLZ1").val(result.item.plz);
                              $("#Ort1").val(result.item.ort);
                              $("#Land1").val(result.item.land);
                              $("#Region1").val(result.item.region);

                             }
                           });

                    },
            minLength: 2
        });
    });

});

我从loadFirma.php得到了正确的答案,但我无法使用它们。
result.strasse
和result.item.strasse
两个都不会工作

1 个答案:

答案 0 :(得分:2)

服务器端正在输出JSON,但它是一个数组。看看它被[]包围的方式?所以result.strasse不存在。

在尝试访问strsse之前更改以访问数组中的第一个元素:

$("#Strasse1").val(result[0].strasse);

如果您期望多个结果,那么您可以迭代数组:

for(var i=0; i<result.length; i++){
    console.log(result[i].strasse)
}