Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery $.map()在.autocomplete()成功的过程中多次触发_Jquery_Json_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

Jquery $.map()在.autocomplete()成功的过程中多次触发

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) {

我正在使用jQueryUI中的“自动完成”功能在数据库中搜索用户。脚本正在运行,程序正在查找我要查找的所有内容。但当自动完成菜单出现在搜索字段下方时,所有结果都会出现多次。在查找问题之后,我可以找到有问题的函数。它是
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()。我使它比我必须要复杂得多。谢谢!