您好,我有一个ajax搜索框,它可以从我的帖子类型中提取所有分类法,但如果我开始键入而分类法不存在,它只会显示一个小框,其中没有任何内容。是否可以更改此设置,以便在分类不存在的情况下,在框中弹出“未找到搜索结果”
这是我的职责:
function fetch(){
var keyword = jQuery(\'#listing_tags\').val();
var myDiv = document.getElementById("ajaxbox");
if (keyword != "")
{
myDiv.style.display = "block";
} else {
myDiv.style.display = "none";
}
jQuery.post(\'<?php echo admin_url(\'admin-ajax.php\'); ?>\',{\'action\':\'my_action\',\'keyword\': keyword},
function(response){
jQuery(\'#datafetch\').html(\'\');
jQuery(\'#datafetch\').append(response);
});
}
jQuery(document).on(\'click\',\'#datafetch li\',function(){
var val = jQuery(this).html();
jQuery(\'#listing_tags\').val(val);
jQuery(\'#datafetch\').html(\'\');
var myDiv = document.getElementById("ajaxbox");
myDiv.style.display = "none";
});
SO网友:Sabbir Hasan
您可以随时检查响应。我不知道您的php函数返回什么,但我假设它在未找到时不返回任何内容。让我们修改fetch()
函数检查响应是否为空。从下面的代码中,您将了解在何处实现弹出窗口。
function fetch() {
var keyword = jQuery(\'#listing_tags\').val();
var myDiv = document.getElementById("ajaxbox");
if (keyword != "") {
myDiv.style.display = "block";
} else {
myDiv.style.display = "none";
}
jQuery.post(\'<?php echo admin_url(\'
admin - ajax.php \'); ?>\', {
\'action\': \'my_action\',
\'keyword\': keyword
},
function(response) {
jQuery(\'#datafetch\').html(\'\');
if(response.trim()==\'\'){
//This code will run when response is empty
jQuery(\'#datafetch\').append(\'<p>no search results found</p>\');
}else{
//This code will run if there is valid response
jQuery(\'#datafetch\').append(response);
}
});
}