【问题标题】:Autocomplete using data from MYSQL使用来自 MYSQL 的数据自动完成
【发布时间】:2013-06-17 07:46:10
【问题描述】:

我想在从 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>

【问题讨论】:

    标签: php mysql jquery-ui autocomplete


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      查看autocomplete 的 jQueryUI API 文档。

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

      $('#autocomplete').autocomplete({
          source: '/data/my-page.php'
      });
      

      【讨论】:

        【解决方案3】:

        你可以像下面这样编码:

        $("#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);
        
        • 并确保这是 autocomplete_query.php 上唯一的 echo 语句。

        【讨论】:

        • tanx,这似乎很有帮助....但我不明白你的意思是 $result = array(0 => "ActionScript", 1 => "AppleScript", 2 = > "Asp",...);
        • 对不起!我的意思是,$result 应该只是一个一维数组,而不应该是多维数组。
        【解决方案4】:

        您需要以 json 格式获取结果,并且您可以使用 ajax 获取这些结果,而不是 availableTags。在 ajax 调用中,您需要从数据库中获取数据,然后将它们编码为 JSON 格式,如

        echo json_encode($result_array);
        

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 嘿,还有很多 maryam 用于 dat 链接,它们很棒
          【解决方案6】:

          你可以这样试试。从 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> 
          

          【讨论】:

          • 查看我的更新,但我仍然收到警告)警告:substr() 期望参数 1 为字符串,数组中给出
          • 在 substr 函数之前尝试使用 implode 函数
          猜你喜欢
          • 2012-06-07
          • 2016-04-16
          • 2018-12-31
          • 2014-10-22
          • 1970-01-01
          • 1970-01-01
          • 2015-04-09
          • 2016-02-27
          相关资源
          最近更新 更多