2011-04-01 87 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