Javascript jQuery ajax自动完成结果框太小或带有数字
我正在尝试用ajax完成jQueryUI自动完成。我使用的是CI 3.1.5,我得到的结果框很小,或者只是一些结果 这是我的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)
$(".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<代码>名称!==<代码>名称