在输入时更改mysqli查询

时间:2014-04-25 02:12:24

标签: php jquery ajax mysqli

我已经研究了一段时间了,似乎找不到任何好的解决方案,所以我想我会看到有没有人在这之前做过这个有一个简单的解决方案。当有人在输入框中输入时,有没有办法更新查询?结果用于index.php,其中在结果上运行while循环。我已经尝试了几个教程,但我找不到任何只会改变查询的内容。

<input name="search" type="text" id="search" autocomplete="off">

$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['search']);
$search_string = $tutorial_db->real_escape_string($search_string);
$result = mysqli_query($con,"SELECT * FROM directory WHERE concat(fname,' ',lname) LIKE '%".$search_string."%'");

3 个答案:

答案 0 :(得分:1)

您可以将您的逻辑放在keydown事件中。

document.getElementById('search').onkeydown = function(){
    // your logic goes here
};

答案 1 :(得分:0)

也许您应该尝试下面的链接,这会在您在文本框中输入时更改查询。 AutoComplete

答案 2 :(得分:0)

您需要使用Ajax通过查询向您的php脚本发出请求,然后让该脚本输出结果,然后每次用新结果替换您的html。

的search.php:

$result = mysqli_query($con,"SELECT * FROM directory WHERE concat(fname,' ',lname) LIKE '%".$search_string."%'");

$search_array = mysqli_fetch_assoc($result);//get associative array

print_r($search_array); //print the data in some way

javascript(jquery)

$("#search_box").keydown( function() { //call searchChanged each time key is pressed in the html input box

   searchChanged();

});

function searchChanged() {
   $.ajax({
     url: "search.php",//contains your search query
     context: document.body
   success: function(data) { //data contains search.php's output
      $('#search_output').html(data);//insert the output into some html div on your page for viewing
   }

   });

}//search_changed()