Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 键入时自动完成列表中的空行,而不是建议的名称_Jquery_Jquery Ui_Jquery Autocomplete - Fatal编程技术网

Jquery 键入时自动完成列表中的空行,而不是建议的名称

Jquery 键入时自动完成列表中的空行,而不是建议的名称,jquery,jquery-ui,jquery-autocomplete,Jquery,Jquery Ui,Jquery Autocomplete,我有一个奇怪的问题。我从一个php文件中获得一些JSON格式的信息。 我已经用console.log测试了这一点,数据确实以JSON形式返回,并以自动完成形式作为潜在选项传递。但是,从输入中向下列出的列表只包含完全没有数据的行。以下是我为自动完成功能提供的一段代码: $(function() { $( "#searchArea" ).autocomplete({ delay: 0, minLength: 2,

我有一个奇怪的问题。我从一个php文件中获得一些JSON格式的信息。 我已经用console.log测试了这一点,数据确实以JSON形式返回,并以自动完成形式作为潜在选项传递。但是,从输入中向下列出的列表只包含完全没有数据的行。以下是我为自动完成功能提供的一段代码:

$(function() {   
        $( "#searchArea" ).autocomplete({
              delay: 0,
              minLength: 2,           
              source: function(request, response) {
              $.ajax({
              url: 'search.php', 
              data: { term: request.term }, 
              success: function(data) {  
                                response($.map(data, function(item) {
                                return {
                                label: item.firstName,
                                value: item.userID};
                                }));
              }
            });
          }
        })
    });
我不明白。显然,我在回应电话中遗漏了一些东西,但我不知道是什么。从php返回的数据在多个数组中包含SELECT查询的结果,如下所示:

{“1”:{“userID”:“1”,“firstName”:“Mike”},“2”:{“userID”:“2”,“firstName”:“Michael”}

任何帮助和指导都将不胜感激,因为我从早上就一直在这里。
谢谢。

如果响应包含如下格式的数据,则工作正常

{"1":{"userID":"1","firstName":"Mike"},"2":{"userID":"2","firstName":"Michael"}}
测试代码

<html lang="en">
   <head>
      <meta charset="utf-8">
      <link href="http://code.jquery.com/ui/1.10.4/themes/ui-lightness/jquery-ui.css" rel="stylesheet">
      <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
      <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
      <!-- Javascript -->
      <script>
         $(function() {
            var data = {"1":{"userID":"1","firstName":"Mike"},"2":{"userID":"2","firstName":"Michael"}}
            $( "#automp" ).autocomplete({
               source: function(request, response) {
                   response( $.map( data, function(item) {
                    // your operation on data
                    return {
                               label: item.firstName,
                               value: item.userID
                           }
                    }));
               }
            });
         });
      </script>
   </head>
   <body>
      <!-- HTML --> 
      <div class="ui-widget">
         <p>Type mike</p>
         <label for="automp">Users: </label>
         <input id="automp">
      </div>
   </body>
</html>

尝试添加限制:100到源代码的typeahead,我不知道原因,但设置为100可以解决问题

$('#ahead').typeahead({
            hint: true,highlight: true,
            },
 {
            limit:100,
            source: bloodhound,
....
}

好吧,那样的话,它确实起作用了!为了这个,我烧了一天,结果发现我实际上是在将数据解析到另一个变量,并且仍然在从未解析的数据变量赋值。那真是太遗憾了:不管怎样,谢谢你的关心,谢谢你花时间解决我的愚蠢问题。干杯
$('#ahead').typeahead({
            hint: true,highlight: true,
            },
 {
            limit:100,
            source: bloodhound,
....
}