搜索结果无需按Enter或提交

时间:2014-12-27 20:30:53

标签: php html mysql

我正在做一个从数据库中获取信息的搜索页面。我想要一个类似于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>

如果我添加一个提交按钮就行了,但如果没有它我就无法工作。 谢谢你的帮助:))

1 个答案:

答案 0 :(得分:1)

您所指的是客户端操作,仅使用phphtmlmysql无法实现。这基本上是一个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与服务器保持通信,并且很好地处理返回的数据。