Jquery $.map()在.autocomplete()成功的过程中多次触发
我正在使用jQueryUI中的“自动完成”功能在数据库中搜索用户。脚本正在运行,程序正在查找我要查找的所有内容。但当自动完成菜单出现在搜索字段下方时,所有结果都会出现多次。在查找问题之后,我可以找到有问题的函数。它是Jquery $.map()在.autocomplete()成功的过程中多次触发,jquery,json,jquery-ui,jquery-ui-autocomplete,Jquery,Json,Jquery Ui,Jquery Ui Autocomplete,我正在使用jQueryUI中的“自动完成”功能在数据库中搜索用户。脚本正在运行,程序正在查找我要查找的所有内容。但当自动完成菜单出现在搜索字段下方时,所有结果都会出现多次。在查找问题之后,我可以找到有问题的函数。它是map()。也许有人能帮我解决这个问题。谢谢你 职能: <!-- Dynamische Suche --> $('#suchfeld').autocomplete({ source : function (request, response) {
map()
。也许有人能帮我解决这个问题。谢谢你
职能:
<!-- Dynamische Suche -->
$('#suchfeld').autocomplete({
source : function (request, response) {
$.ajax({
type: "POST",
url: "post.php",
data: {
name:'Suchfeldvorschlaege',
value:request.term
},
success: function(json) {
var data = $.parseJSON(json);
var availableTagsLabeled = new Array();
response($.map(data, function () {
if(!data["0_SuchfeldName"]) {
availableTagsLabeled[0] = {label:"Keine Einträge"};
} else {
for(i = 0; i <= data.SuchfeldAnzahl; i++) {
availableTagsLabeled[i] = {label: data[i +"_SuchfeldName"], value: data[i +"_SuchfeldID"]};
}
}
return availableTagsLabeled;
}));
}
})
},
minLength : 3,
select : function(event, ui) {
$('#suchfeld').html(ui.item.label);
$('#suchfeld').attr("data-KundenID", ui.item.value);
return false; },
focus : function(event, ui) {
$(this).val(ui.item.label);
$('#suchfeld').attr("data-KundenID", ui.item.value);
}
});`
$(“#suchfeld”)。自动完成({
来源:功能(请求、响应){
$.ajax({
类型:“POST”,
url:“post.php”,
数据:{
名称:'Suchfeldvorschlaege',
值:request.term
},
成功:函数(json){
var data=$.parseJSON(json);
var availabletagslated=new Array();
响应($.map(数据、函数)(){
如果(!data[“0_SuchfeldName”]){
AvailableTagsLabel[0]={label:“Keine Einträge”};
}否则{
for(i=0;i$.map()
返回回调函数返回的所有值的数组。回调函数返回的是整个可用的标记为的数组,因此$.map()
返回的是二维数组。一次只应返回一个元素
但看起来根本不应该映射到JSON对象,只需要for
循环来收集所有元素
您是否有任何要返回的元素的测试应该在循环之外完成
success: function(json) {
var var data = $.parseJSON(json);
var availableTagsLabeled;
if(!data["0_SuchfeldName"]) {
availableTagsLabeled = [{label:"Keine Einträge"}];
} else {
availableTagsLabeled = [];
for(i = 0; i <= data.SuchfeldAnzahl; i++) {
availableTagsLabeled[i] = {label: data[i +"_SuchfeldName"], value: data[i +"_SuchfeldID"]};
}
}
response(availableTagsLabeled);
}
success:function(json){
var-var-data=$.parseJSON(json);
var AvailableTagsLabel;
如果(!data[“0_SuchfeldName”]){
AvailableTagsLabel=[{label:“Keine Einträge”}];
}否则{
AvailableTagsLabel=[];
对于(i=0;我非常感谢!这是解决方案。我没有意识到我不必使用map()。我使它比我必须要复杂得多。谢谢!