#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.