gpt4 book ai didi

javascript - Ajax 响应空 GET

转载 作者:行者123 更新时间:2023-12-03 05:46:01 25 4
gpt4 key购买 nike

我使用带有 javascript 的 ajax,并且使用 GET 在 php 页面上处理数据。当GET查询为空时,是否可以从php页面发送数据?我想这样做是因为我有一个可以过滤结果的实时搜索,但我希望当用户在搜索框中输入内容并且字符串与其匹配时显示匹配的结果,并且当字段为空时,我希望显示所有结果。因此,如果用户在搜索框中输入某些内容并获得匹配的结果,然后按退格键将其删除,我希望显示所有结果。所以显然最好的方法是当查询为空时能够在 php 页面上执行某些操作,但当我这样做时它不起作用。实现这一目标的最佳方法是什么?

因此 JavaScript 页面如下所示:

function showResults(str) {
if (str.length == 0) {
document.getElementById("results").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "query.php?q=" + str, true);
xmlhttp.send();
}

}

PHP 页面如下所示:

$q = $_REQUEST["q"];

if ($q !== "") {
....Get Data from database or elsewhere here

echo $reponse;

}

如果我在 php 页面上执行以下操作,它将不起作用:

if ($q == "") {
....Get Data from database or elsewhere here

echo $reponse;

}

如果我用空或 isset 检查它也无法正常工作。

当搜索输入为空时我唯一可以做的事情是在 javascript 页面上

 if (str.length == 0) { 
document.getElementById("results").innerHTML = "";
return;
}

当搜索为空时,如何在php页面上进行查询或其他操作?因此,当字段为空时,我需要 ajax 向我发送数据库中的所有结果。

最佳答案

也许我在这里有点偏离主题,但我想针对您的具体情况建议一种完全不同的技术。

这里是:在初始页面加载时,下载网页上的所有搜索结果。当用户在搜索框中输入一些文本时,只需使用 JavaScript 在客户端解析网页上的搜索结果即可。当用户删除输入的文本时,再次使用 JavaScript 显示所有搜索结果。这样,您就不必为用户的每个“输入”发送 HTTP 请求,从而增加了用户输入某些文本和获取相关搜索结果之间的响应时间。

再说一次,我的回答可能偏离主题,但我不久前实现了这个,与一次又一次发送 GET/POST 请求相比,结果是惊人的。

在页面加载时将 JSON 从 PHP 发送到 JavaScript:

<?php

function get_all_search_results()
{
// Database query to get all search results in an array
$search_results_array = "";

// Convert the array to a JSON object
$json = json_encode($search_results_array);

// Echo it
echo $json;
}

?>

在页面加载时,通过 onload JavaScript 函数调用上述函数,如下所示:
//JSON 对象 var searchResultsArray;

    function getAllSearchResults()
{
// An ajax request to get all search results in a variable
var allresults = // result of the ajax request

// JSON decode the results
searchResultsArray = JSON.parse(allresults);
}

关于javascript - Ajax 响应空 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40332898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com