자바 스크립트와 함께 ajax를 사용하고 데이터는 GET을 사용하여 PHP 페이지에서 처리됩니다. GET 쿼리가 비어있을 때 PHP 페이지에서 데이터를 보낼 수 있습니까? 결과를 필터링하는 라이브 검색이 있지만 사용자가 검색 상자에 무언가를 입력하고 문자열이 일치 할 때 일치하는 결과를 표시하고 필드가 비어있을 때 모든 결과가 표시되기를 원합니다. 따라서 사용자가 검색 상자에 무언가를 입력하고 일치하는 결과를 얻은 다음 백 스페이스 키를 눌러 삭제하면 모든 결과가 표시되기를 원합니다. 그래서 분명히 가장 좋은 방법은 쿼리가 비어있을 때 PHP 페이지에서 무언가를 할 수 있지만 그렇게하면 작동하지 않는 것입니다. 이를 달성하는 가장 좋은 방법은 무엇입니까?
따라서 자바 스크립트 페이지는 다음과 같습니다.
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으로 확인하면 제대로 작동하지 않습니다.
검색 입력이 비어있을 때만 내가 할 수있는 곳은 자바 스크립트 페이지에 있습니다.
if (str.length == 0) {
document.getElementById("results").innerHTML = "";
return;
}
검색이 비어있을 때 PHP 페이지에서 쿼리 또는 기타 작업을 수행하려면 어떻게해야합니까? 그래서 필드가 비어있을 때 데이터베이스의 모든 결과를 보내려면 ajax가 필요합니다.
여기서는 주제를 약간 벗어난 것일 수도 있지만 특정 경우에 대해 완전히 다른 기술을 제안하고 싶습니다.
시작합니다. 초기 페이지로드시 웹 페이지의 모든 검색 결과를 다운로드합니다. 사용자가 검색 상자에 텍스트를 입력하면 JavaScript를 사용하여 클라이언트 측 웹 페이지의 검색 결과를 구문 분석하면됩니다. 사용자가 입력 한 텍스트를 삭제하면 다시 JavaScript를 사용하여 모든 검색 결과를 표시합니다. 이렇게하면 사용자가 "입력"할 때마다 HTTP 요청을 보낼 필요가 없으므로 사용자가 일부 텍스트를 입력하고 관련 검색 결과를 얻는 사이의 응답 시간이 늘어납니다.
다시 말하지만 내 대답은 주제에서 벗어 났을 수 있지만 얼마 전에 이것을 구현했으며 결과는 GET / POST 요청을 반복해서 보내는 것에 비해 놀랍습니다.
페이지로드시 PHP에서 JavaScript로 JSON 보내기 :
<?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 object 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);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다