Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Javascript jQuery ajax自动完成结果框太小或带有数字_Javascript_Jquery_Ajax_Codeigniter_Autocomplete - Fatal编程技术网

Javascript jQuery ajax自动完成结果框太小或带有数字

Javascript jQuery ajax自动完成结果框太小或带有数字,javascript,jquery,ajax,codeigniter,autocomplete,Javascript,Jquery,Ajax,Codeigniter,Autocomplete,我正在尝试用ajax完成jQueryUI自动完成。我使用的是CI 3.1.5,我得到的结果框很小,或者只是一些结果 这是我的ajax: $(".addClient").each(function() { $(this).autocomplete({ autoFocus: true, minLength: 2, source: function (request, response)

我正在尝试用ajax完成jQueryUI自动完成。我使用的是CI 3.1.5,我得到的结果框很小,或者只是一些结果

这是我的ajax:

    $(".addClient").each(function() { 

        $(this).autocomplete({
            autoFocus: true,
            minLength: 2,       
            source: function (request, response) {
                $.ajax({
                url:  "<?php echo  site_url('search');?>",
                type: "GET",
                data : { 'input_data' : request.term},
                success: function (data){
                    // console.log(data);
                    var parsedData = JSON.parse(data);
                    console.log(parsedData);
                    var result = [];
                    parsedData.forEach(function (value, index) {
                        result.push({label:value.name, value:index.name });
                    });

                    response(result);

                    },
                error:function(error){
                    console.log('error');
                }
                });
            },  
         });
        });
$(".addClient").each(function() { 

        $(this).autocomplete({
            autoFocus: true,
            minLength: 2,       
            source: function (request, response) {
                $.ajax({
                url:  "<?php echo  site_url('search');?>",
                type: "GET",
                data : { 'input_data' : request.term},
                success: function (data){
                    // console.log(data);
                    var parsedData = JSON.parse(data);
                    console.log(parsedData);
                    var result = [];
                    parsedData.forEach(function (value, index) {
                        result.push({label:value.name, value:index });
                    });

                    response(result);

                    },
                error:function(error){
                    console.log('error');
                }
                });
            },  
         });
        });
[{"NAME":"888"},{"NAME":"****"},{"NAME":"****"},{"NAME":"****"}]
编辑:

    $(".addClient").each(function() { 

        $(this).autocomplete({
            autoFocus: true,
            minLength: 2,       
            source: function (request, response) {
                $.ajax({
                url:  "<?php echo  site_url('search');?>",
                type: "GET",
                data : { 'input_data' : request.term},
                success: function (data){
                    // console.log(data);
                    var parsedData = JSON.parse(data);
                    console.log(parsedData);
                    var result = [];
                    parsedData.forEach(function (value, index) {
                        result.push({label:value.name, value:index.name });
                    });

                    response(result);

                    },
                error:function(error){
                    console.log('error');
                }
                });
            },  
         });
        });
$(".addClient").each(function() { 

        $(this).autocomplete({
            autoFocus: true,
            minLength: 2,       
            source: function (request, response) {
                $.ajax({
                url:  "<?php echo  site_url('search');?>",
                type: "GET",
                data : { 'input_data' : request.term},
                success: function (data){
                    // console.log(data);
                    var parsedData = JSON.parse(data);
                    console.log(parsedData);
                    var result = [];
                    parsedData.forEach(function (value, index) {
                        result.push({label:value.name, value:index });
                    });

                    response(result);

                    },
                error:function(error){
                    console.log('error');
                }
                });
            },  
         });
        });
[{"NAME":"888"},{"NAME":"****"},{"NAME":"****"},{"NAME":"****"}]
谢谢你,Jaromanda X,你说得对:名字!==名称 现在我可以在“自动完成”框中看到建议,但当我在输入字段中选择一个结果时,我得到:

[object Object]

我做错了什么?谢谢您的时间。

JSON.parse解析字符串, 因此,在解析数据之前,先将数据转换为字符串,然后使用JSON.parse()对其进行解析

要转换为字符串,请使用JSON.stringify()

我还怀疑您是否在promise函数forEach循环中收到数组, 如果不是数组,请检查是否使用for(parsedData中的var obj)

另外,如果您只想直接将数据推送到某个数组,那么如果您在promise中接收数组,则不需要解析它, 直接执行

 var result = [];
                parsedData.forEach(function (value, index) {
                    result.push({label:value.name, value:index });
                });
希望有帮助


感谢并问候

谢谢Jaromanda X。这是工作代码:

$(".addClient").each(function() { 

        $(this).autocomplete({
            autoFocus: true,
            minLength: 2,       
            source: function (request, response) {
                $.ajax({
                url:  "<?php echo  site_url('search');?>",
                type: "GET",
                data : { 'input_data' : request.term},
                success: function (data){
                    // console.log(data);
                    var newData = JSON.stringify(data);
                    console.log(newData);
                    var parsedData = JSON.parse(data);
                    console.log(parsedData);
                    var result = [];
                    parsedData.forEach(function (value) {
                        result.push({label:value.NAME, value:value.NAME });
                    });

                    response(result);

                    },
                error:function(error){
                    console.log('error');
                }
                });
            },  
         });
        });
$(“.addClient”).each(function(){
$(此)。自动完成({
自动对焦:对,
最小长度:2,
来源:功能(请求、响应){
$.ajax({
url:“”,
键入:“获取”,
数据:{'input_data':request.term},
成功:功能(数据){
//控制台日志(数据);
var newData=JSON.stringify(数据);
console.log(newData);
var parsedData=JSON.parse(数据);
console.log(parsedData);
var结果=[];
parsedData.forEach(函数(值){
push({label:value.NAME,value:value.NAME});
});
反应(结果);
},
错误:函数(错误){
console.log('error');
}
});
},  
});
});

错误之处在于没有解释问题所在。如果数据(JSON结果)仅包含数字,则错误不在javascript中,而是在数据获取程序中。因此,;检查返回此结果的php代码。给我一个derp<代码>名称!==<代码>名称