Ajax Live Search Javascript数据

时间:2016-10-30 12:49:38

标签: javascript php ajax search

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();
}

}

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

if(str.length==0) {
 .... 
} ; 

现在我遇到的问题是,如果搜索为空,我想发送所有数据但是数据在我的php文件中,那么我如何将数据从php发送到javascript?可能会有更好的 这样做的方式还是有什么东西我不能来这里?

1 个答案:

答案 0 :(得分:0)

如果要在搜索字符串为空时显示所有搜索结果,那么只要$ _GET的q参数为空,就可以检入data.php。如果它为空,则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();
}