1

我有许多搜索/文本框,它们使用 AJAX 搜索数据库表并将结果/搜索建议放在类似于谷歌搜索的 div 中。现在除了重新加载页面之外,没有办法清空这些 div。我想这样做,如果您退格以使文本框像在谷歌搜索中一样空白,则 div 会清空。现在,当您一直退格时,它会将其视为在“”上搜索并返回所有结果。或者让您在框外单击以清空它。否则,我最终会在页面上填充 div,这会使它变得混乱。我在想我要么需要更改查询,因此如果字符串为空,它不会返回任何内容,或者如果您在框外单击,则该框会变为空。感谢您的任何建议:

这是缩写代码:

Javascript

function getHints(str) {
...
document.getElementById("results").innerHTML=xmlhttp.responseText;//places output in results div
...
xmlhttp.open("GET","search.php?searchterm="+str,true);
xmlhttp.send();
}

html

<input type="text" id="search" onkeyup="getHints(this.value)">Search<div id="results"></div>

php

$str = $_REQUEST['str'];
$sql = "SELECT * FROM table WHERE name LIKE '%$str%'";
search database and echo out results.
4

2 回答 2

3

使用jQuery,它会在做这样的事情时帮助你很多,AJAX,操作 DOM 等。

function getHints(str) {
    ...
    if (str === "")
    {
        document.getElementById("results").innerHTML = "";
    }
    else
    {
        document.getElementById("results").innerHTML=xmlhttp.responseText;
        ...
        xmlhttp.open("GET","search.php?searchterm="+str,true);
        xmlhttp.send();
    }
}
于 2012-10-25T11:10:30.553 回答
1

只需检查一个空字符串并相应地处理:

function getHints(str) {
    if (str == "") {
        document.getElementsById("results").innerHTML = "";
    }
    else {
    ...
    }
}
于 2012-10-25T11:09:58.207 回答