【发布时间】:2015-02-24 14:18:53
【问题描述】:
我正在做一个从数据库中获取信息的搜索页面。我想要一个类似于 http://designspiration.net/ 网站的搜索。
所以我想要的是它无需按 Enter 或提交即可显示结果,因此它会根据所写的字母显示建议。
到目前为止,我有这样的事情:
div class="container">
<div class="row">
<div class="col-md-10">
<form action="#" method="POST">
<textarea name="search"></textarea>
<input type="submit" name="enter_search" >
</form>
</div>
</div>
<?php
if (isset($_POST['enter_search'])) {
$name = $_POST['search'];
$sql = <<<SQL
SELECT `name`
FROM `teachers`
WHERE `name` LIKE '%{$name}%'
SQL;
if(!$result = $con->query($sql)){
die('There was an error running the query [' . $con->error . ']');
}
while($row = $result->fetch_array()){
echo $row['name'] . '<br />'; }
}
?>
</div>
如果我添加一个提交按钮,它可以工作,但没有它我无法让它工作。 谢谢你的帮助:)
【问题讨论】:
-
如果它是表单的一部分,您可以将查询附加到 textarea 中的 onchange 事件。也许确定查询很快。还有其他库提供支持更改事件的不同文本控件。
-
您需要一些 JavaScript 才能完成这项工作。确保也保留提交按钮并使用 JavaScript 将其隐藏(如果您想完全隐藏它),否则如果脚本不起作用,人们将根本无法搜索。
-
危险:您使用的是an obsolete database API,应该使用modern replacement。您还容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。