javascript - 如何使自动完成 Jquery UI 插件动态化

标签 javascript jquery jquery-ui autocomplete

我正在使用 here 中的 Jquery UI 自动完成插件。问题是,如何将动态内容插入到自动完成中?这是我尝试过的:

<?php

  $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
  $one_grab = $db2->query("SELECT * FROM movies");

  echo '<script>
  $(function() {
    var availableTags = [
    </script>';

    while($two_row = mysqli_fetch_array($one_grab)) {
    echo $two_row["title"];
  }

      echo '"ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $("#delete_movie").autocomplete({
      source: availableTags
    });
  });
  </script>';

  ?>

请假设 Jquery 和 Jquery UI 已正确链接...为了进一步解释,我有一个连接到 SQL 查询的 while 循环。我尝试将其附加到自动完成内容中,但这不起作用。使用 Jquery UI 自动完成插件执行此操作的正确方法是什么?

EDIT @Vijay Arun

This is the code you have published:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Autocomplete - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">

  <?php

  $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
  $one_grab = $db2->query("SELECT * FROM movies");

 while($two_row = mysqli_fetch_array($one_grab)) {
    $data[] = $two_row["title"];
  }

  ?>
  <script>
  $(function() {
    var availableTags = "<?php echo json_encode($data); ?>";
    $("#delete_movie").autocomplete({
      source: JSON.parse(availableTags)
    });
  });
  </script>

</head>
<body>

<div class="ui-widget">
  <input id="delete_movie" name="delete_movie" required>
</div>


</body>
</html>

Does this look correct? If so, the code is still not working...

最佳答案

使用remote例如,在php

echo json_encode()
$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })

关于javascript - 如何使自动完成 Jquery UI 插件动态化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834979/

相关文章:

jquery - 将 jQuery nestedSortable 元素(正在拖动)限制在容器内?

javascript - 为什么我们不能使用 css 为 Canvas 设置宽度和高度

javascript - Web 浏览器完全忽略 Controller 中的功能。没有显示错误,但无论如何都无法显示函数内部的任何内容

javascript - 使用npm而不是yarn安装包时出错

php - 有没有一种方法可以在不按提交按钮的情况下自动触发提交?

javascript - 使用 jQuery/meioMask 提交未屏蔽的表单值

javascript - Jquery ui选项卡问题

javascript - PHP、HTML 和 Jquery : Dynamic User Info

javascript - 为什么我对 dom 的更改直到函数运行后才显示出来

javascript - 通过jquery ui slider 控制html5 Canvas 动画速度