如果分类不存在,AJAX搜索框不显示任何内容

时间:2020-05-20 作者:JoeCold

您好,我有一个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";
});

1 个回复
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);
            }
        });
}