Добавление сообщения о результатах в поисковый скрипт jQuery - PullRequest
0 голосов
/ 29 января 2012

У меня есть скрипт поиска jQuery, основанный на Bing API.Когда пользователь выполняет поиск и его результаты являются результатом их запроса, они отображаются без проблем.Однако, когда нет результатов для их поиска, тогда страница просто пуста.

Как добавить сообщение, например "Результаты не найдены".когда нет результатов, чтобы предотвратить пустую страницу?

Мой текущий код:

$(document).ready(function(){
    function search(){
        $.ajax({
            type:"GET",
            url:"http://api.bing.net/json.aspx?AppId=AppIdHere&Query=SearchTermsHere&Sources=Web&Adult=Strict&Web.Count=10&JsonType=callback&JsonCallback=?",
            dataType:"jsonp",
            success:function(query){
                $("#results").html(results(query));
            }
        });
    }
    function results(response){
        var output=[];
        $.each(response.SearchResponse.Web.Results,function(i,result){
            output.push('<a href="'+result.Url+'" class="result"><div class="title">'+result.Title+'</div><div class="url">'+result.DisplayUrl+'</div><div class="desc">'+result.Description+'</div></a>');
        });
        return output.join('');
    }
    search();
});

Ответы [ 2 ]

0 голосов
/ 29 января 2012

Измените строку возврата функции результатов на:

return (output.length == 0 ? 'No results found.' : output.join(''));

=== ОБНОВЛЕНИЕ ===

Если у вас есть ошибка JavaScript, измените функцию результатов на:

function results(response){
    if (typeof response.SearchResponse.Web.Results == 'undefined') {
        return 'No results found.';
    }
    var output=[];
    $.each(response.SearchResponse.Web.Results,function(i,result){
        output.push('<a href="'+result.Url+'" class="result"><div class="title">'+result.Title+'</div><div class="url">'+result.DisplayUrl+'</div><div class="desc">'+result.Description+'</div></a>');
    });
    return output.join('');
}

или вы должны добавить обработчик ошибок:

    $.ajax({
        ...,
        error:function(){
            $("#results").html('No results found.');
        }
    });
0 голосов
/ 29 января 2012
success:function(query){
   if(query != null)
       $("#results").html(results(query));
   else
       $("#results").html('<p>No results found</p>');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...