我有一个Autocompleter,工作正常,现在我想添加一个“Autofiller” 这意味着,如果我从“自动填充器”中选择一个“公司” 它应该从公司的数据库中获得所有结果。
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
两个都不会工作
答案 0 :(得分:2)
服务器端正在输出JSON,但它是一个数组。看看它被[]
包围的方式?所以result.strasse
不存在。
在尝试访问strsse
之前更改以访问数组中的第一个元素:
$("#Strasse1").val(result[0].strasse);
如果您期望多个结果,那么您可以迭代数组:
for(var i=0; i<result.length; i++){
console.log(result[i].strasse)
}