javascript - jQuery Ui 自动完成无法从 Php MySQL 文件中获取值(value)

标签 javascript php jquery mysql jquery-ui

我正在使用 jquery ui 自动完成,但是当我尝试从简单的 javascript 变量获取值时,我得到了,但是 jquery Ui 自动完成不适用于 php mysql 文件,这是我的代码

enter image description here

<div class="col-md-12" class="col-centered">

                   <input id="tags" type="text" class="dic_input ui-autocomplete-input" data-provide="tags" name="ajaxData"/>
                   <button class="btn btn-lg btn-default"><i class="fa fa-2x fa-search"></i></button>
            </div>

这是我的 JavaScript 代码

$(function() 
{ var availableTags = [
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $("#tags").autocomplete({
        source: "auto.php",
        minLength: 1
    });
});

这是我的 php 代码

$db=mysql_connect("localhost","root","");
    mysql_select_db("hifzil");

    $searchTerm = $_GET['term'];

    //get matched data from skills table
    $sql ="SELECT lemma FROM lemma WHERE lemma like '" . $searchTerm . "%' ORDER BY lemma LIMIT 0,6";

    $q=mysql_query($sql);
    while ($row = mysql_fetch_array($q)) {
        $data[] = str_replace("-"," ",$row['lemma']);

    }

    //return json data
    echo json_encode($data);

最佳答案

这是不可能的,首先你在本地做avaiableTags,但是在源头你放置了一个远程源之后,你的例子是你在jquery中找到的基本的,但是例子是在本地的,所以至少是source:avaiableTags ,如果您想进行远程调用,您可以使用下面的代码,但使用 f12 打开浏览器的控制台日志,然后放置您自己的选择项

$("#tags").autocomplete({
    source:function(request,response){
        $.ajax({
          type: "GET",
          data:{},
          url: "auto.php",
          dataType: "json",
          success:function(data){
               console.log(data);                         
           }
         });                                        
    },
    select: function(event,ui){},//your own at the selct item 
    change: function(event,ui){},//your own in change event
    response: function(event, ui) {}//your own in response 
    minLength: 1
});

在 php 中我认为数组不正确......你必须写

        $data[] = array('item'=>str_replace("-"," ",$row['lemma']))

在成功的 javascript 中你可以编写

                          success:function(data){

                                 items= data;
                                 listItem=[];
                                 for (i=0; i<items.length; i++){
                                   listItem[i] = items[i]['item'];
                                 }
                               response(listItem);                                
                           }

响应将是在选择事件后的项目列表,您可以自己进行选择...等等...等等,但必须使用控制台浏览器才能查看答案。

Javascript:

$("#tags").autocomplete({
    source:function(request,response){
        $.ajax({
          type: "GET",
          data:{term: request.term},
          url: "auto.php",
          dataType: "json",
          success:function(data){
                             items= data;
                             listItem=[];
                             for (i=0; i<items.length; i++){
                               listItem[i] = items[i]['item'];
                             }
                           response(listItem);                        
           }
         });                                        
    },      
    minLength: 1
});

PHP:

$db=mysqli_connect("localhost","root","","hifzil");

$searchTerm = $_GET['term'];

//get matched data from skills table
$sql ="SELECT lemma FROM lemma WHERE lemma like '" . $searchTerm . "%' ORDER BY lemma LIMIT 0,6";
$data = array();
$q=mysqli_query($db,$sql);
while ($row = mysqli_fetch_assoc($q)) {
    $lemma = str_replace("-"," ",$row['lemma']);
    $data[] = array('item'=>$lemma);

}

//return json data
$result = json_encode($data);
print $result;

关于javascript - jQuery Ui 自动完成无法从 Php MySQL 文件中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47413948/

相关文章:

javascript - Rebol READ 自己如何实现异步可插拔协议(protocol)

javascript - angular js不发布表格

jquery - 计算径向菜单的 Angular

javascript - 使用 AXIOS 在 JS 中未定义异步函数的结果

javascript - 如何在同一网页中显示不同的视频弹出窗口?

PHP Mysql While循环覆盖一个变量只显示一个结果

php - 如何在设备上保存 BLOB 数据类型文件?

php - 如何删除 ZF2 中的路线?

javascript - 更改 Bootstrap 选择的边框颜色(btn 类)

javascript - "Uncaught ReferenceError: createDayLabel is not defined"- 如何解决此错误以使 Materialise 的日期选择器正常工作?