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