我正在做一个从数据库中获取信息的搜索页面。我想要一个类似于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>
如果我添加一个提交按钮就行了,但如果没有它我就无法工作。 谢谢你的帮助:))
答案 0 :(得分:1)
您所指的是客户端操作,仅使用php
,html
和mysql
无法实现。这基本上是一个JavaScript问题。
你应该首先看看jQuery UI's autocomplete feature,或者如果你想建立自己的机制,这里有一些线索:
您需要检测文本输入何时被更改,因此您可以在更新短语时启动查询。您可以使用input
/ change
活动或keydown
/ keyup
/ keypress
执行此操作。
在请求服务器进行数据库操作之前等待用户停止输入会很好,这里是你如何检测输入的结束:How to trigger an event in input text after I stop typing/writing?
您需要使用ajax与服务器保持通信,并且很好地处理返回的数据。