【问题标题】:Change mysqli query on typing键入时更改 mysqli 查询
【发布时间】:2014-04-25 02:12:24
【问题描述】:

我已经对此进行了一段时间的研究,但似乎找不到任何好的解决方案,所以我想我会看看这里是否有人在此之前做过这个,有一个简单的解决方案。当有人在输入框中输入内容时,有没有办法更新查询?结果在 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."%'");

【问题讨论】:

    标签: php jquery ajax mysqli


    【解决方案1】:

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

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

    【讨论】:

    • 我对javascript不太了解,如何使用它来更改查询?
    【解决方案2】:

    也许你应该试试这个,下面的链接会在你继续在文本框中输入时改变查询。 AutoComplete

    【讨论】:

    • 我查看了自动完成功能,但它只是在搜索框中创建了一个下拉列表。我想做的是根据查询结果回显一堆div
    • 当用户键入一个值时,它应该根据查询来更改查询,它应该获取结果并且应该显示在 html 页面中的是你想说的。如果是这种情况,请查看此链接w3schools.com/php/php_ajax_php.asp 可能会有所帮助
    【解决方案3】:

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

    搜索.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()
    

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多