迭代数据以显示自动填充建议

时间:2012-04-06 12:16:58

标签: javascript jquery jquery-ui autocomplete

这是一个API,它返回数组中的结果,用于自动建议

对于Eg。如果我查询“google”,我会得到如下结果

["google","google maps","google translate","google earth","google images","google docs","google voice","google scholar","google chrome","google calendar",]

您可以自己尝试here

这是我用来查询此API的代码,但它似乎没有返回结果。

Here's我用它的代码

     $(function() {

    $( "#city" ).autocomplete({
        source: function( request, response ) {
            $.ajax({
                url: "q.php",
                dataType: "json",
                data: {
                    "q" : request.term
                },
                success: function( data ) {
                    response(data[1]);
                }
            });
        },
        minLength: 2
    });
});

我不明白代码中哪里出错了 请指正!因为它似乎没有像我想的那样工作

编辑:从同一服务器访问数据

3 个答案:

答案 0 :(得分:1)

你忘了在你的小提琴中添加jquery-ui库。但是,如果你做代码无论如何都无法工作,因为你无法通过ajax请求从另一个域访问数据。只有来自js代码执行的相同域。

答案 1 :(得分:0)

这可能会有所帮助

$(document).ready(function() {
$.getJSON('http://twitter.com/users/usejquery.json?callback=?', function(json) { //get information about the user usejquery from twitter api
$('#twitter_followers').text(json.followers_count); //get the follower_count from the json object and put it in a span
});
});

寻找称为跨域ajax的东西。 http://usejquery.com/posts/the-jquery-cross-domain-ajax-guide

答案 2 :(得分:0)

您可以在此处阅读有关在跨域环境中使用jQuery自动完成功能的信息:http://1300grams.com/2009/08/17/jquery-autocomplete-with-json-jsonp-support-and-overriding-the-default-search-parameter-q/

您还需要将jquery.autocomplete.js添加到jsFiddle环境中。