jquery-ui - 将 jQuery 自动完成与 AJAX 和 JSON 结合使用

标签 jquery-ui autocomplete

我正在尝试使用 jQuery UI 自动完成小部件,但没有成功。没有提供匹配列表。

我的脚本如下:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="./jquery-1.11/jquery-1.11.1.min.js"></script>
<script src="./jquery-ui-1.11.1/jquery-ui.min.js"></script>
<script>
$("#tags").autocomplete({
  source: function( request, response ) {
     $.ajax({
       url: "testAJAX.php",
       type: "POST",
       dataType: "json",
       data: {term: request.term},
       success: function(data) {
         response(data);
      }
     });
   } 
 });
</script>
</head>
<body>
<input type="text" id ="tags" />
</body>
</html>

在服务器上我的 PHP 代码如下:

<?php include "dbConnect.php";
header('Content-type: application/json');

$q=$_POST["term"]; 

$sql="SELECT name, id as value, id FROM sample WHERE id LIKE '".strtoupper($q)."%';";

$result =  mysqli_query($con, $sql);

$rows = array();
while($r = mysqli_fetch_array($result)) {
  $rows[] = $r;
}

$json  = json_encode($rows);
echo $json;

我已经使用以下 JQuery 脚本检查了 AJAX 和 JSON 是否正常工作,该脚本确实输出 php.ini 中的值。

<script>
  $(document).ready(function(){
    $('#path').keyup(function(){
      var t = $('#path').val();
      $.ajax({
        type: "POST",
        url: "testAJAX.php",
        data: {term: t},
        dataType: 'json',
        success: function( data ) {
          $('#tags').html('');
          for (var i in data) {
            $('#tags').append(data[i].value + '<br/>');
          }
        }
      });
    });
  }); 
</script>
</head>
<body>
<input type="text" id="path" />
<div id="tags">
</div>
</body>
</html>

最佳答案

我已经解决了;我没有将自动完成功能放在 $(function(){}) block 中。

所以应该是:

$(function(){
  $("#tags").autocomplete({
    source: function( request, response ) {
      $.ajax({
        url: "testAJAX.php",
        type: "POST",
        dataType: "json",
        data: {term: request.term},
        success: function(data) {
          response(data);
        }
      });
    } 
  });
});

关于jquery-ui - 将 jQuery 自动完成与 AJAX 和 JSON 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26511728/

相关文章:

c# - Google 建议文本框(自动完成)

javascript - 具有嵌套形式的 jQuery 对话框

javascript - jQuery UI Accordion (默认隐藏所有)

javascript - 处理页面上多个位置的相同 div 的最佳方法

jquery - 无法正确排序动态添加的可排序 jQuery UI 图像

jquery - 重新定位 Jquery UI 自动完成结果框

javascript - 隐藏在 droppable 后面的 JQueryUI 可拖动对象

reactjs - 在 MUI 自动完成中使用 tabIndex 时出错

autocomplete - 使用 Algolia 自动完成执行构面搜索查询

javascript - 无法使用动态创建的变量 ASP.net 运行自动完成 jQuery?