【问题标题】:Search results not showing up搜索结果不显示
【发布时间】:2023-09-15 00:35:01
【问题描述】:

我在动态搜索表单上显示结果时遇到问题。 jquery的代码是:

     $("#searchterm").keyup(function (e) {
    if (this.value.length > 4) {
        var q = $("#searchterm").val();
        $('#output').text('You typed ' + $(this).val() + '.');
        $.getJSON('http://catalog.api.2gis.ru/search?what=' + q + '&where=москва&version=1.3&key=rujrdp3400&pagesize=50&callback=?',
        function (data) {
            var tmp = {};
            if (data !== undefined && data.result.length !== 0) {
                $.each(json.result,function(i,result) {
                    var type = result.id;
                    if (!tmp[type]) {
                        tmp[type] = [];
                    }
                    tmp[type].push(result);
                    alert(result.id);

                });
                var html = [];
                $.each(tmp, function (key, item) {
                    html.push('<div id=' + key + '><h3 id=' + key + '>' + key + '</h3> <span>');
                    html.push(result.length + '</span><ul id="items">');
                    $.each(result, function (i, val) {

   var isLiked = getItemIdxByIdFromStorage(val.id) != -1;
                        html.push('<li><a href="#" onClick="podcat('+"'"+val.id+"'"+')">'+val.name+'</a></li>');

                    });

                    html.push('</ul></div>');
                });

                $('#results').html(html.join(''));

                $('h3#listings').replaceWith('<h3>Total results: </h3>');

            } else {
                $('#results').html('Nothing found');
            }
        });
    } else {
        $('#results').html('Please type at least 5 characters');
    }
});

我正在尝试获取 result.id 和 result.name...请在搜索字段中输入 Pizza。

如果有人可以帮助我,我将不胜感激。抱歉,我的 jquery 水平比初学者还低。

也请使用我的小提琴http://jsfiddle.net/TCYyH/

【问题讨论】:

    标签: jquery ajax json


    【解决方案1】:

    您正在从 Web 服务器请求 JSONP 响应(如 URL 中的 &amp;callback=? 参数所示),而不是更传统的 JSON 响应。您应该可以从这里调试您的代码。

    从以下位置更改您的请求:

    $.getJSON('http://catalog.api.2gis.ru/search?what=' + q + '&where=москва&version=1.3&key=rujrdp3400&pagesize=50&callback=?',
    

    到这里:

    $.getJSON('http://catalog.api.2gis.ru/search?what=' + q + '&where=москва&version=1.3&key=rujrdp3400&pagesize=50',
    

    改为接收JSON 响应。

    【讨论】:

    • 嗨,Jacob,我已删除 &callback=?来自 URL 但它没有帮助并且出现错误:未捕获的 ReferenceError: json is not defined
    • 您没有在您提供的代码中定义json.result。也许你的意思是data.result