0

我想在从 mysql 数据库中搜索数据时使用 jquery ui 进行自动完成功能....因为 nw 正在使用数组中的数据,但我不知道。我如何从数据库中检查它?这是我的代码。

<script>
$(function() {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"
    ];

    $( "#tags" ).autocomplete({
        source: result_array 
    });
});
</script> 

有什么帮助吗?

编辑为:

?php  
$q=mysql_query("select rfname from research_details") or die(mysql_error()); 

$array_data = mysql_fetch_array($q);

foreach($array_data as $data) {
 $data1[] = "'".$data."',";
}
$data1 = implode(",",$data1); 
$data = substr($data1,0,-1);


?>
$(function() {

var availableTags = [
<?php echo $data; ?>
];
$( "#tags" ).autocomplete({
source:availableTags 
});
});
</script>
4

6 回答 6

1

使用 AJAX ( jQuery.ajax() ),您可以向服务器上的 PHP 文件发送请求,以从数据库中检索数据并将其作为JSON编码字符串返回,然后您将在 jQuery / Javascript 中对其进行解析并将其添加到DOM。

于 2013-06-20T12:41:38.860 回答
1

查看 jQueryUI API 文档autocomplete

基本上,您将 URL 指定为source. 然后该 URL 会输出一个 jQuery 可以处理的页面,例如 JSON 或 XML 数据。

$('#autocomplete').autocomplete({
    source: '/data/my-page.php'
});
于 2013-06-20T12:45:32.660 回答
0

代替 availableTags,您需要以 json 格式获取结果,并且可以使用 ajax 获取这些结果。在 ajax 调用中,您需要从数据库中获取数据,然后以 JSON 格式对它们进行编码,例如

echo json_encode($result_array);

并解析它们并将其添加到availableTags。试试这些JSON ENCODE

于 2013-06-20T12:41:28.113 回答
0

您需要学习以下链接 Link1 Link2 Link3Demo

于 2013-06-20T12:54:47.217 回答
0

您可以将其编码如下:

$("#tags").autocomplete({
    source: function(request, response) {
        jQuery.ajax({
            url: '/autocomplete_query.php',
            dataType: 'json',
            success: function(data) {
                response(data);
            }
    });
});

autocomplete_query.php 中的 SELECT 查询结果的结构应该类似于以下数组:

$result = array(0 => "ActionScript", 1 => "AppleScript", 2 => "Asp",...);

然后应该像这样返回:

echo json_encode($result);
  • 并确保这是echoautocomplete_query.php 上的唯一语句。
于 2013-06-20T13:04:46.513 回答
0

你可以这样试试。从 db 作为数组获取数据,然后将其传递给您的 jquery 函数。

<?php
$array_data;  // get data from db as array
foreach($array_data as $data) {
$data1[] = "'".$data."',";
} 
$data1=implode(",",$data1);
   $data = substr($data1,0,-1);
?>

<script>
$(function() {

var availableTags = [
<?php echo $data; ?>
];
$( "#tags" ).autocomplete({
source:result_array 
});
});
</script> 
于 2013-06-20T12:52:53.290 回答