如何在表的一列内实现多个文本字段的实时搜索?

时间:2016-12-12 01:37:30

标签: javascript php jquery html

我目前在文本字段上实现了实时搜索(在您键入时搜索)功能。流程是这样的。

  1. 在页面内调用.js文件。
  2. 将文本字段的ID设置为" client-search"。
  3. 在.js文件中,它正在监听"客户端搜索"的关键事件。文字字段。
  4. 如果触发了on key up事件,.js文件将调用一个PHP文件,该文件搜索数据库并将输出作为列表项返回到" client-search"下面的无序列表中。文字字段。
  5. 此设置目前有效,但如何在单个页面内的多个字段中实现它,因为它使用" id"显然,我不能在一个页面中拥有多个ID。

    HTML:

    <div class="input-group">
    <input type="text" id="client-search" class="form-control" placeholder="Search for manager...">
    <ul class="livesearch" id="client-result" onclick="clickResult()"></ul>
    </div>
    

    JS

    /* JS File */
    
    // Start Ready
    $j(document).ready(function() {  
    
    // Icon Click Focus
    $j('div.icon').click(function(){
        $j('input#client-search').focus();
    });
    
    // Live Search
    // On Search Submit and Get Results
    function search() {
        var query_value = $('input#client-search').val();
        $j('b#search-string').text(query_value);
        if(query_value !== ''){
            $j.ajax({
                type: "POST",
                url: "clientsearch.php",
                data: { query: query_value },
                cache: false,
                success: function(html){
                    $("ul#client-result").html(html);
                }
            });
        }return false;    
    }
    
    $j("input#client-search").live("keyup", function(e) {
        // Set Timeout
        clearTimeout($.data(this, 'timer'));
    
        // Set Search String
        var search_string = $(this).val();
    
        // Do Search
        if (search_string == '') {
            $j("ul#client-result").fadeOut();
        }else{
            $j("ul#client-result").fadeIn();
            $j(this).data('timer', setTimeout(search, 100));
        };
    });
    
    });
    

    PHP:

    <?php
    
    $serverName = "(local)";
    
    $connectionInfo = array( "Database"=>"CMS");
    $conn = sqlsrv_connect( $serverName, $connectionInfo);
    
    if( $conn ) {
    
    } else {
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true));
    }
    
    $html = '';
    $html .= '<li value="myLi" class="myLi">';
    $html .= '<small>nameString</small>';
    $html .= '<small></small>';
    $html .= '</li>';
    
    $search_string = $_POST['query'];
    //$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
    
    if (strlen($search_string) >= 1 && $search_string !== ' ') {
    
    $sql = "SELECT TOP 10 ClientName FROM Client WHERE ClientName LIKE '%" . $search_string . "%'";
    
    $params = array($search_string);
    
    $stmt = sqlsrv_query( $conn, $sql);
    
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      $results_array[] = $row;
    }
    
    if (isset($results_array)) {
        foreach ($results_array as $result) {
    
            $display_function = $result['ClientName'];
            $display_name = $result['ClientName'];
    
            $output = str_replace('nameString', $display_name, $html);
    
            //$output = str_replace('functionString', $display_function, $output);
    
            echo($output);
        }
    }else{
        $output = str_replace('nameString', '<b>No Results Found.</b>', $html);
        $output = str_replace('functionString', 'Sorry :(', $output);
    
        echo($output);
    }
    }
    
    ?>
    

0 个答案:

没有答案