如何在php中创建搜索框?

时间:2015-04-30 07:19:30

标签: javascript php jquery html

我已经使用php,html和jquery为我的网站实现了搜索框。

首先,我创建了一个数据库,
使用PHP我已经排序了值和
使用jquery和html我在搜索框下面的div中显示了搜索结果。

我的问题是我无法使用向下或向上键选择结果,为此我还尝试在php中的列表或删除框中生成结果。

如果我错了,请纠正我。下面是我正在使用的代码。

<body>

    <h1>Search web page</h1>
    <form action="search_demo.php" method="post"  >

        <input type="text" name="search" placeholder="search here" onkeydown="searchq();" />
        <input type="submit" value=">>" />

        <div id="output" style="z-index: 10; position: absolute ; background-color: yellow;">

        </div>
        <div id="stable" style="">

        </div>

    </form>
</body>
 <script>
        function searchq(){
            var searchtxt = $("input[name='search']").val();
            $.post("search_demo12.php", {searchval : searchtxt}, function(output) {
                 $("#output").html(output);
            });

        }    
    </script> 
$conn = new mysqli($servername, $username, $password, $dbname);
    if(isset($_POST['searchval'])){
    $search = $_POST['searchval'];
   // $search = preg_replace("#[^0-9a-z]#i","",$search);

    $pieces = explode(" ", $search);
    $pieces_count = count($pieces);

//    $pieces[0] = preg_replace("#[^0-9a-z]#i"," ",$pieces[0]);
  //  $pieces[1] = preg_replace("#[^0-9a-z]#i"," ",$pieces[1]);


    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $sql = "select * from search_demo where fname like '%$search%' or lname like '%$search%'";
    $result = $conn->query($sql);

                 while($row = $result->fetch_assoc()){
                     $pname = $row['fname'];
                     $purl = $row['lname'];
                     //if($piece == $row['brand']){

                    $output .= '<option>'.$pname.' '.$purl.'</option>'; 



                 }

    }

echo ($output);

2 个答案:

答案 0 :(得分:0)

在这种情况下,我认为最好使用onkeyup()JavaScript函数,因为您正在实现实时搜索并需要动态更改输出..

答案 1 :(得分:0)

您的意思是您无法使用向上和向下键选择结果吗?

我认为这是因为你没有将options包裹在select列表中。这样做

while($row = $result->fetch_assoc()){
   $pname = $row['fname'];
   $purl = $row['lname'];
   //if($piece == $row['brand']){

   $output .= '<option>'.$pname.' '.$purl.'</option>'; 



}
echo "<select>".$output."</select>";