2011-04-01 38 views
1

我有這個ac.php文件和這個result.php文件 我想在ac.php文件的JQuery UI中使用自動完成,但我希望它檢索來自result.php的數據作爲源。我只是不知道該怎麼做。我試過這種方式,但它不工作jQuery ui自動完成與php(codeigniter)和數據庫

ac.php

<html> 
<head> 
    <link type="text/css" href="jqui/css/ui-lightness/jquery-ui-1.8.11.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="jqui/js/jquery-1.5.1.min.js"></script> 
    <script type="text/javascript" src="jqui/js/jquery-ui-1.8.11.custom.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
     $("#tags").autocomplete("result.php"); 
    }); 

    </script> 
</head> 
<body> 

<div class="ui-widget"> 
    <label for="tags">Tags: </label> 
    <input id="tags"> 
</div> 

</body> 
</html> 

這是result.php

<?php 
$arrResults = array('option 1', 'option 2', 'option 3'); 

// Print them out, one per line 
echo implode("\n", $arrResults); 

?> 
+0

嘗試恢復它作爲一個jsonstring'json_encode($ arrResults)'。另外,你有沒有檢查firbug,看看請求/響應是否正常? – JohnP 2011-04-01 11:17:37

+0

這只是你從[這裏]給出的代碼(http://stackoverflow.com/questions/5487872/using-jquery-autocomplete-from-database-with-php-codeigniter) - 你問如何整合這個與codeigniter具體? – Ross 2011-04-01 11:19:19

+0

@Ross不,我可以用codeigniter來做。問題是當我使用JQuery UI。其不檢索樣本信息 – Kay 2011-04-01 11:30:38

回答

3

引述documentation of Autocomplete

的自動填充插件需要t帽子 字符串指向 將返回的URL資源JSON數據


因此,而不是你的代碼,你應該使用這樣的事情:

<?php 
$arrResults = array('option 1', 'option 2', 'option 3'); 
echo json_encode($arrResults); 
?> 


json_encode()函數將返回對應於您的陣列的JSON字符串。

+0

非常感謝:)它的工作。猜猜我不完全熟悉什麼是JSON ... – Kay 2011-04-01 11:40:39

+0

不客氣:-)玩得開心! *(和JSON很有趣;-))* – 2011-04-01 11:50:29

+0

我希望你仍然在身邊:p ..我完全按照你所說的做了,並且工作。但我注意到了一些。無論我寫什麼,條形圖都會顯示數組中的所有單詞。它不符合用戶輸入的內容。 – Kay 2011-04-01 12:28:49

1

ac.php

$(function() { 
    $("#tags").autocomplete({ 
     source: "result.php", 
     dataType:'json', 
     minLength: 0, 
     delay:0 

    }); 

    $("#tags").click(function() { 
     $("#tags").autocomplete("search",""); 
    }); 
}); 

result.php

<?php 
$arrResults = array('option 1', 'option 2', 'option 3'); 

// Print them out, one per line 
echo json_encode($arrResults); 
?> 
+0

我試過你的方式,但它沒有工作:(+我不明白第二個函數,爲什麼要使用它? – Kay 2011-04-01 12:30:00

+0

第二個函數允許您在單擊時「自動完成」,而不僅僅是當您在輸入中鍵入內容時。 – 2011-04-01 12:45:42