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

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
都不会工作

最佳答案

服务器端正在输出JSON,但它是一个数组。看看它被[]包围了吗?因此result.strasse不存在。

尝试访问strsse之前,请更改为访问数组中的第一个元素:

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


如果期望多个结果,则可以遍历数组:

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

07-26 05:26