json即时搜索

时间:2012-09-04 20:28:44

标签: jquery ajax json search

我正在尝试在json中创建即时搜索功能。代码看似正确但绝对不起作用。请你帮个忙看看并帮我解决一下吗?提前谢谢。

http://jsfiddle.net/hMyr7/

3 个答案:

答案 0 :(得分:3)

我必须在你的jsfiddle上启用jQuery ......

一旦我这样做,似乎服务器为ajax请求返回了500服务器错误。

您需要调查服务器端响应,因为我们无法为您解决此问题。

答案 1 :(得分:1)

您的JSONP代表您的AJAX调用收到的数据。 It看起来像这样:

jsonCallback([{
    "id": 41,
    "title": "My city",
    "permalink": "http:\/\/mykolaiv.cityfacts.pro\/my-city\/",
    "content": "",
    "meta": {
        "ultimatum_layout": [""],
        "_edit_last": ["1"],
        "_edit_lock": ["1346784971:1"]
    },
    "excerpt": "",
    "date": "2012-09-04 18:26:50",
    "author": "oyeremchuk",
    "categories": [],
    "tags": [null]
}]);

最外面的节点是一个数组。要访问该数组中的第一个元素,您可以使用索引器:response[0]。那么问题是“你想从你的数据中得到什么?”

从您的js判断,您可能希望循环整个响应,并从每个项目中提取idtitlepermalink。这应该是你的回调:

    success: function(response) {
        $.each(response, function(i, item) {
            var data_id = item.id;
            var data_title = item.title;
            var data_viewCount = item.permalink;

            var final = "<div id='id'><div>" + data_id + "</div><div id='title'>" + data_title + "</div></div>";

            $("#results").append(final);

        });
    }

http://jsfiddle.net/hMyr7/15/

答案 2 :(得分:0)

您检查过JavaScript控制台吗?

"Uncaught TypeError: Cannot read property 'items' of undefined" - 因为您的JSON中没有datadata.items

尝试更改

if (response.data.items) {

if (response.data && response.data.items) {

它至少会优雅地失败。

http://jsfiddle.net/mblase75/hMyr7/2/