我有一个自动完成器,可以正常工作,现在我想添加一个“自动填充器”
这意味着,如果我从“自动完成程序”中选择“公司”之一
它应该从数据库获得该公司的所有结果。
JSON响应为:
[
{
"idfirma": "2222",
"firmenname": "test",
"strasse": "test",
"plz": "",
"ort": "test",
"land": "",
"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)
}