Отображать сообщение, когда HTML-код не возвращается в скрипт поиска jQuery

#javascript #jquery #html

#javascript #jquery #HTML

Вопрос:

У меня есть скрипт поиска в стиле Google Instant, написанный на jQuery, который запрашивает PHP-файл. В настоящее время, когда результаты не найдены, PHP-файл не возвращает HTML-код, поэтому скрипт является пустым. Как я могу сделать так, чтобы мой скрипт jQuery отображал сообщение, когда HTML-код не возвращается?

Мой код jQuery code является:

 $(document).ready(function(){
    $("#search").keyup(function(){
        var search=$(this).val();
        var query=encodeURIComponent(search);
        var yt_url='search.php?q=' query 'amp;category=web';
        window.location.hash='search/' query '/1/';
        document.title=$(this).val() " - My Search Script";
        if(search==''){
            window.location.hash='';
            document.title='My Search Script';
        }
        $.ajax({
            type:"GET",
            url:yt_url,
            dataType:"html",
            success:function(response){
                $("#result").html(response);
            }
        });
    });
});
  

Ответ №1:

Измените эту строку

 $("#result").html(response);
  

Для

 if(response != "")
    $("#result").html(response);
else
    $("#result").html("No html returned.");
  

Надеюсь, это поможет.

Ответ №2:

Простой ответ таков:

Если ответ пустой, его длина должна быть равна нулю.

         success:function(response){
            if (response.length == 0)
            {
               // no result
            } else {
              $("#result").html(response);
            }
        }
  

Более сложный ответ:
Обычно я решаю такого рода проблемы немного более явно, кодируя свой ответ в json. Поэтому у меня всегда есть объект, который выглядит примерно так:

 {
   result: ... (any kind of result, data, html, etc.),
   error: 'error messages,
   notice: 'notice messages
}
  

Это позволит вам отправлять сообщения туда и обратно немного более удобно и явно с вашего php.