Ajax实时搜索Javascript数据


Ajax Live Search Javascript Data

function getData(str) {
if (str.length == 0) { 
    var target = document.querySelectorAll("#delete");
    return;
} else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            var target = document.querySelectorAll("#delete");
            for(var i=0 ; i<target.length; i++){
                target[i].innerHTML="";
                target[0].innerHTML=this.responseText;
            }

        } 
    };
    xmlhttp.open("GET", "data.php?q=" + str, true);
    xmlhttp.send();
}

}

早上好,我有一个实时搜索上的AJAX请求以下javascript。然后将此数据发送到data.php页面,该页面检查q的get请求是否为空,如果不是,则返回匹配的数据。现在,当搜索框为空时,我想显示所有结果,而不是不显示结果。我试着检查$_GET请求是否在data.php页面上为空输出所有结果,但它不起作用。当$_GET['q']为空时,我似乎能够做一些事情的唯一方法是在上面的

中的javascript中
if(str.length==0) {
 .... 
} ; 

现在的问题是,我想发送所有的数据,如果搜索是空的但这些数据是在我的php文件那么我如何将数据从php发送到javascript?也许会有更好的怎么做,还是有什么我不明白的地方?

如果您想在搜索字符串为空时显示所有搜索结果,那么您可以在data.php中检查$_GET的q参数是否为空。如果它为空,那么data.php可以返回所有的数据。您的代码可以更新如下:

function getData(str) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            var target = document.querySelectorAll("#delete");
            for(var i=0 ; i<target.length; i++){
                target[i].innerHTML="";
                target[0].innerHTML=this.responseText;
            }

        } 
    };
    xmlhttp.open("GET", "data.php?q=" + str, true);
    xmlhttp.send();
}