Javascript 如何使自动完成jQueryUI插件动态

Javascript 如何使自动完成jQueryUI插件动态,javascript,jquery,jquery-ui,autocomplete,Javascript,Jquery,Jquery Ui,Autocomplete,我正在使用来自的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 = [ <

我正在使用来自的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>';

  ?>
使用示例,
echo json_encode()
at
php

$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })
<div class="ui-widget">
   <input id="delete_movie" name="delete_movie" required>
</div>
<script>
$(function() {
    $( "#delete_movie" ).autocomplete({
        source: "suggest.php"   
    });
</script>
<?php
    $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
    $one_grab = $db2->query("SELECT * FROM movies WHERE title LIKE '%{$_GET['term']}%' ");
    while($two_row = mysqli_fetch_array($one_grab)) {
       $data[] = $two_row["title"];
    }
    echo json_encode( $data );
例如,
echo json_encode()
at
php

$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })
<div class="ui-widget">
   <input id="delete_movie" name="delete_movie" required>
</div>
<script>
$(function() {
    $( "#delete_movie" ).autocomplete({
        source: "suggest.php"   
    });
</script>
<?php
    $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
    $one_grab = $db2->query("SELECT * FROM movies WHERE title LIKE '%{$_GET['term']}%' ");
    while($two_row = mysqli_fetch_array($one_grab)) {
       $data[] = $two_row["title"];
    }
    echo json_encode( $data );

你需要两个独立的文件,
index.php
suggest.php

$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })
<div class="ui-widget">
   <input id="delete_movie" name="delete_movie" required>
</div>
<script>
$(function() {
    $( "#delete_movie" ).autocomplete({
        source: "suggest.php"   
    });
</script>
<?php
    $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
    $one_grab = $db2->query("SELECT * FROM movies WHERE title LIKE '%{$_GET['term']}%' ");
    while($two_row = mysqli_fetch_array($one_grab)) {
       $data[] = $two_row["title"];
    }
    echo json_encode( $data );
index.php

$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })
<div class="ui-widget">
   <input id="delete_movie" name="delete_movie" required>
</div>
<script>
$(function() {
    $( "#delete_movie" ).autocomplete({
        source: "suggest.php"   
    });
</script>
<?php
    $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
    $one_grab = $db2->query("SELECT * FROM movies WHERE title LIKE '%{$_GET['term']}%' ");
    while($two_row = mysqli_fetch_array($one_grab)) {
       $data[] = $two_row["title"];
    }
    echo json_encode( $data );

你需要两个独立的文件,
index.php
suggest.php

$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })
<div class="ui-widget">
   <input id="delete_movie" name="delete_movie" required>
</div>
<script>
$(function() {
    $( "#delete_movie" ).autocomplete({
        source: "suggest.php"   
    });
</script>
<?php
    $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
    $one_grab = $db2->query("SELECT * FROM movies WHERE title LIKE '%{$_GET['term']}%' ");
    while($two_row = mysqli_fetch_array($one_grab)) {
       $data[] = $two_row["title"];
    }
    echo json_encode( $data );
index.php

$("#delete_movie").autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "/path/to/php",
      dataType: "json",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data );
      }
    });
 })
<div class="ui-widget">
   <input id="delete_movie" name="delete_movie" required>
</div>
<script>
$(function() {
    $( "#delete_movie" ).autocomplete({
        source: "suggest.php"   
    });
</script>
<?php
    $db2 = new mysqli("127.0.0.1", "root", "", "crave crap");
    $one_grab = $db2->query("SELECT * FROM movies WHERE title LIKE '%{$_GET['term']}%' ");
    while($two_row = mysqli_fetch_array($one_grab)) {
       $data[] = $two_row["title"];
    }
    echo json_encode( $data );

很好的例子!但是,我希望保留Jquery UI示例中使用的相同样式。“希望保留Jquery UI示例中使用的相同样式”什么是“相同样式”?请参见“问题,如何将动态内容插入自动完成?”中的原始问题。样式化版本使用了良好的间距和突出显示。您的示例仅使用文本自动完成…@ProgrammingTree“样式化版本使用了很好的间距和突出显示。”也许可以使用注释中描述的要求更新问题?“希望保持jQueryUI示例中使用的相同样式”。原始帖子中的问题似乎是“问题,如何将动态内容插入自动完成?”。另外请注意,post中的解决方案不应影响
.autocomplete()
小部件的样式;仅解决了当用户搜索术语时从服务器检索数据的方法伟大的示例!但是,我希望保留Jquery UI示例中使用的相同样式。“希望保留Jquery UI示例中使用的相同样式”什么是“相同样式”?请参见“问题,如何将动态内容插入自动完成?”中的原始问题。样式化版本使用了良好的间距和突出显示。您的示例仅使用文本自动完成…@ProgrammingTree“样式化版本使用了很好的间距和突出显示。”也许可以使用注释中描述的要求更新问题?“希望保持jQueryUI示例中使用的相同样式”。原始帖子中的问题似乎是“问题,如何将动态内容插入自动完成?”。另外请注意,post中的解决方案不应影响
.autocomplete()
小部件的样式;当用户搜索术语时,仅解决从服务器检索数据的方法。我只使用虚拟数据,您可以使用远程选项执行此操作。您介意解释更多吗?如何使$data等于while($two_row=mysqli_fetch_array($one_grab)){echo$two_row[“title”];}@ProgrammingTree我已经更新了我的答案,让我们来看看吧,我已经更新了我的问题来回答你。我已经向您展示了您给我的完整代码。请告诉我格式是否正确。如果是这样,代码是不正确的…我已经修改了答案我只是使用了一个虚拟数据,你可以用远程选项来实现这一点你介意解释更多吗?如何使$data等于while($two_row=mysqli_fetch_array($one_grab)){echo$two_row[“title”];}@ProgrammingTree我已经更新了我的答案,让我们来看看吧,我已经更新了我的问题来回答你。我已经向您展示了您给我的完整代码。请告诉我格式是否正确。如果是这样,代码是不正确的…我已经修改了答案