Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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自动完成与Ajax和JSON一起工作?_Jquery_Ajax_Json_Autocomplete - Fatal编程技术网

如何让JQuery自动完成与Ajax和JSON一起工作?

如何让JQuery自动完成与Ajax和JSON一起工作?,jquery,ajax,json,autocomplete,Jquery,Ajax,Json,Autocomplete,我不熟悉JQuery的自动完成功能。我正在努力使此代码正常工作。下面的代码可以在每次有人输入输入字段时正确地执行ajax轮询。但是,它不会自动完成 $(document).ready(function() { $("#search").autocomplete({ source: 'cityajax' }); }); 这是它正成功从服务器中提取的文件。mime/内容类型设置为text/json ['Overland Park','Hiawatha','Columbus','Le

我不熟悉JQuery的自动完成功能。我正在努力使此代码正常工作。下面的代码可以在每次有人输入输入字段时正确地执行ajax轮询。但是,它不会自动完成

$(document).ready(function() {
  $("#search").autocomplete({
    source: 'cityajax'
  });
});
这是它正成功从服务器中提取的文件。mime/内容类型设置为text/json

['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']
当源代码被设置为javascript本身的内联JSON变量时,同样的事情也可以正常工作。这个问题一定很简单,但我花了一个半小时试图找出问题所在,我遇到了一个障碍。我是否缺少某种必需的参数

编辑:将我的“json”更改为这个有效的json,仍然是相同的问题

{"1": "Overland Park","1": "Hiawatha","1": "Columbus","1": "Lenexa","1": "Pittsburg","1": "Dodge City"}
编辑:再次将我的“json”更改为此

[{"1": "Overland Park"},{"2": "Hiawatha"},{"3": "Columbus"},{"4": "Lenexa"},{"5": "Pittsburg"},{"6": "Dodge City"}]
编辑:把我的“json”改成这个,一切都很好


[{“label”:“Overland Park”},{“label”:“Hiawatha”},{“label”:“Columbus”},{“label”:“Lenexa”},{“5”:“Pittsburg”},{“label”:“Dodge City”}]

你使用的方法肯定行不通。我想问你怎么知道数据肯定会到达那里。您是否通过Firebug在XHR中看到它?如果你没有使用插件的远程源代码功能,你怎么称呼它

按照您定义它的方式,没有文件扩展名。因此,它将源代码设置为一个名为cityajax的字符串,这是无效的。如果您的数据源是一个名为cityajax的变量,那么您可以将该变量放在那里而不带引号


将允许您测试数据的有效性。

自动完成的简单示例:

$( "#test" ).autocomplete({
            source: "search.php"
                        })
在search.php中

<?php
    echo [{"label":"Overland Park"},{"label":"Hiawatha"}]
?>

JSON不是数组,但总是包装在
{…}
中。您需要获取数据,从中解析数组,并将该数组传递给
.autocomplete
。尝试以下操作:[{'label':'Overland..},{'label':'Anonymus'}],除了1,2,3 use标签这是在Kohana MVC框架中,没有.php扩展名,因此它是有效的,调用是在Firebug的网络视图中进行的。我将我的“json”改为这个有效的json。{'1':'Overland Park','1':'Hiawatha','1':'Columbus','1':'Lenexa','1':'Pittsburg','1':'Dodge City'}这个JSON不好,试试这个[{'label':'Overland..},{'label':'Anonymous}]最后我的问题是没有有效的JSON,投票给Jsonlist,非常有用。最后我的问题是没有有效的JSON。
var cityajax = ['Overland Park','Hiawatha','Columbus','Lenexa','Pittsburg','Dodge City','Mission']

$(document).ready(function() {
  $("#search").autocomplete({
    source: cityajax
  });
});