2014-02-26 77 views
0

作爲ERP系統的一部分,我在表上有一個實時過濾器。這是表格底部的文本輸入,用戶可以在該表格中輸入包含在數據庫中的元素名稱的任何部分,表格將顯示這些匹配。將jQuery實時搜索結果顯示爲<tr>表中的元素

這是表的身體:

<tbody> 
<?php 
while($registroBbdd = consultaRegistro($select)){ 
    $class=""; 
    $turn_id=$registroBbdd['tu_id']; 
    $name=$registroBbdd['tu_name']; 
    echo '<tr class="'.$class.'"> 
     <td><span class="tableContentRow">'.$registroBbdd['tu_name'].'</span></td> 
     <td class="editColumn"><a href="#"><div class="editIcon"></div></a></td> 
     </tr>'; }}  ?> 
</tbody> 

這是選擇的功能那些名稱匹配輸入的字符:

$(document).on('keydown', searchSuggestions) 

function searchSuggestions (e) 
{ 
    var cadena = $('input[name=turn_tableFilter]').val(); 

    if(cadena.length>2) 
    { 
     $updateUrl = 'config/forms/turn_conf/turn_search.php'; 
     $.post($updateUrl, {tu_abrev:cadena}).success(showSuggestions); 
    } 
} 

searchSuggestions功能必須工作正常,因爲它調用正確showSuggestions函數,刪除表中包含的所有<tr>

function showSuggestions (datos) { 
$('tbody *').remove();} 

問題是如何向他們展示。我需要使這個最後的功能像循環積累所有匹配的結果,然後使用與之前定義的結構相同的<tr>實時顯示在我的桌子上。任何想法如何做到這一點?我怎樣才能從turn_search.php帶來這些數據,並給它一個適當的格式?

+0

我想知道如何建立一個基於turn_search.php文件給出的結果的循環,其中有一個「SELECT * ... LIKE」用戶輸入的字符。結果是所有DB上的項目名稱都包含輸入字符。好吧,我需要在我的桌子上展示。希望我解釋得很好,謝謝。 – Biomehanika

回答

1

每按一次鍵,您都需要將請求發送到服務器,並通過按下的參數。基於該字母表,PHP將獲取相關記錄並顯示它。這繼續。

因此創建一個包裝while循環的div。

<tbody> 
    <div id = "searched_records"> <!--this one--> 
    <?php 
    while($registroBbdd = consultaRegistro($select)){ 
     $class=""; 
     $turn_id=$registroBbdd['tu_id']; 
     $name=$registroBbdd['tu_name']; 
     echo '<tr class="'.$class.'"> 
      <td><span class="tableContentRow">'.$registroBbdd['tu_name'].'</span></td> 
      <td class="editColumn"><a href="#"><div class="editIcon"></div></a></td> 
      </tr>'; 
     }  ?> </div> 

,然後寫在下面的方法刪除功能。你基本上不刪除新的div,它刪除子元素。

function showSuggestions (datos) { 
    $('#searched_records').empty(); 
    //add new data here 
    $('#searched_records').html(datos); 

} 
+0

我即將嘗試此操作,如果我解決了您的建議,我會打勾。非常感謝你。 – Biomehanika

+0

很酷。讓我知道如果這工作。 –

+0

嗯,不工作,但它似乎在路上。如果對象是** $('#searches_records'),那麼這個空方法不起作用,但是它沒有做任何事情,但是它與tbody:** $('tbody *')。empty(); **,反正空是正確的方法。另一方面,現在失敗的是沒有添加HTML,因爲沒有生成HTML。我是否必須生成我想在turn_insert.php文件的循環中顯示的HTML片段?我在哪裏生成應該導致的HTML?非常感謝@Abhishek。 – Biomehanika