2014-12-27 44 views
-2

我正在做一个搜索页面,从数据库中获取信息。我想要一个类似于http://designspiration.net/网站的搜索。搜索结果没有按下输入或提交

所以我想要的是它显示的结果没有按下输入或提交,所以它显示的建议根据写的信件。

我有这样的事情至今:

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

如果它是表单的一部分,可以将查询附加到textarea中的onchange事件。也许确定查询速度很快。还有其他库提供支持变更事件的不同文本控件。 – adamdc78 2014-12-27 20:33:22

+0

mysql_函数已被弃用,请使用[mysqli](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/tr/book.pdo .php)而不是mysql_函数。 – salep 2014-12-27 20:34:57

+1

你需要一些JavaScript来完成这项工作。确保也保留提交按钮,并使用JavaScript隐藏它(如果你想隐藏它),否则如果脚本不起作用,人们将无法搜索。 – GolezTrol 2014-12-27 20:35:18

回答

1

什么你指的是客户端操作,并且不能与php,只有htmlmysql来实现。这基本上是一个JavaScript问题。

你应该在jQuery UI's autocomplete feature,或者如果你想在这里建立自己的机制考虑看看开始有一些线索:

您需要的时候文本输入正在改变进行检测,这样你就可以开始查询时该短语被更新。您可以使用input/change事件或​​/keyup/keypress这样做。

这将是很好等待用户不再问你的服务器做数据库操作前打字,这里是你如何可以检测输入端:How to trigger an event in input text after I stop typing/writing?

你需要不断与服务器用ajax comunicate并很好地处理返回的数据。