2014-01-02 4 views
0

У меня возникла проблема с отображением результатов в моей динамической форме поиска. Код для 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 ... Пожалуйста, введите пиццу в поле поиска.

Если кто-нибудь может мне помочь, я бы очень признателен. Извините, но мой уровень jquery низкий, чем новичок.

Также, пожалуйста, используйте мою скрипку http://jsfiddle.net/TCYyH/

ответ

0

Вы спрашиваете JSONP ответ от веб-сервера (как указано в параметре &callback=? в URL), вместо более традиционного 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 вместо этого.

+0

Привет, Якоб, я удалил & callback =? от URL-адреса, но это не помогло и возникла ошибка: Uncaught ReferenceError: json не определен – qqruza

+1

Вы не определяете 'json.result' в коде, который вы указали. Может быть, вы имели в виду 'data.result' вместо этого? –

+0

Спасибо Якоб – qqruza

Смежные вопросы