2012-11-26 56 views
0

我用自動完成框來搜索我的文本框。它爲我正常工作......這是我的腳本..分類自動完成的數據

<?php 

require_once('database.php'); 

if(isset($_POST['queryString'])) { 

    $queryString = $dbc->real_escape_string($_POST['queryString']); 

    if(strlen($queryString) >0) { 
     $q = "SELECT keyword 
       FROM (
        SELECT tname AS keyword FROM t 
        UNION 
        SELECT sname AS keyword FROM sub 
        UNION 
        SELECT cname AS keyword FROM c 
        UNION 
        SELECT iname AS keyword FROM i 
       ) s 
       WHERE keyword LIKE '%$queryString%' 
       LIMIT 10"; 

     $r = mysqli_query ($dbc, $q); 

     if($q) { 
      while ($row = mysqli_fetch_array($r, MYSQL_ASSOC)) { 
       echo '<li onClick="fill(\''.$row['keyword'].'\');">'.$row['keyword'].'</li>'; 
      } 
     } else { 
      echo 'ERROR: There was a problem with the query.'; 
     } 
    } else { 

    } 
} else { 
    echo 'There should be no direct access to this script!'; 
} 

?> 

問題是我的自動完成框顯示所有結果科目,導師姓名,單位等相關關鍵字。現在,我想在自動完成框對它們進行分類..例如:主題下的主題類別,在家教類等導師的名字......我所試圖做的是類似的東西Facebook的搜索選項..

這是我的jQuery :

<script type="text/javascript"> 

    function lookup(inputString) { 

     if(inputString.length == 0) { 
      $('#suggestions').hide(); 
     } else { 
      $.post("rpc.php", {queryString: ""+inputString+""}, function(data){ 
       if(data.length >0) { 
        $('#suggestions').show(); 
        $('#autoSuggestionsList').html(data); 
       } 
      }); 
     } 
    } 

    function fill(thisValue) { 
     $('#inputString').val(thisValue); 
     setTimeout("$('#suggestions').hide();", 200); 
    } 

</script> 

有人能幫我嗎? 謝謝。

+0

如果您正在使用jQueryUI的自動完成沒有對源代碼的類別。看着演示,使您的數據相匹配例如http://jqueryui.com/自動完成/#分類 – charlietfl

回答

1

在搜索文本輸入附近使用下拉菜單來選擇類別或多個複選框,以查看您將必須創建的工會嗎?我建議你獅身人面像http://sphinxsearch.com/

嘗試

SELECT 1 as type,tname AS keyword FROM t 
        UNION 
        SELECT 2 as type,sname AS keyword FROM sub 
        UNION 
        SELECT 3 as type,cname AS keyword FROM c 
        UNION 
        SELECT 4 as type,iname AS keyword FROM i 

foreach($results as $result) 
{ 
    switch($result['type']) 
    { 
     case 1: 
     $cat_1[]=$result; 
     break; 

     case 2: 
     $cat_2[]=$result; 
     break; 
    } 

} 
+0

我的queryString varible檢查4個表格並顯示與用戶輸入的關鍵字相關的值的自動填充框。它的工作完美。所以現在我需要將顯示結果分類到自動運行框中。明確? – ugnuku

+0

你可以添加一個類型列進行排序和輸出,但是你想 –

+0

感謝您的迴應......你能告訴我如何使用此查詢創建分類自動完成框? – ugnuku