【问题标题】:jQuery Ui autocomplete Not Getting Value From Php MySQL FilejQuery Ui 自动完成没有从 PHP MySQL 文件中获取价值
【发布时间】:2018-05-04 23:12:23
【问题描述】:

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

<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);

【问题讨论】:

  • 这段代码有很多问题。阅读最佳 php 实践。同时,请不要使用这个
  • 我在本地工作,你能找到解决这个问题的方法吗?

标签: javascript php jquery mysql jquery-ui


【解决方案1】:

这是不可能的,首先你在本地做 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;

【讨论】:

  • 你确定 sql 是正确的吗?如果 json 编码不为空,我插入的代码可以工作我现在尝试过,它可以控制数据库上的查询...[$i]['item'] in javascript 是 json php 中的关键项...使用 mysqli_fetch_assoc不是数组....并且不要使用 mysql 它已弃用使用 mysqli ;)
  • 是的,因为当我尝试通过查询字符串获取结果时,我得到了
  • 我上传了图片你可以看到
  • 那么在 ajax 的数据中插入数据:{term: request.term},并使用我的 mysqli_fetch_assoc 和 $data[] = array('item'=>$row['lemma' ])
  • 你能在这里编辑你的答案吗,这对我很有帮助,我工作了 10 个小时并且卡住了:(
猜你喜欢
  • 2012-06-19
  • 1970-01-01
  • 2012-05-27
  • 2012-07-20
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
相关资源
最近更新 更多