Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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
Php Jquery自动完成,url作为源JSON_Php_Jquery_Json_Url_Jquery Ui Autocomplete - Fatal编程技术网

Php Jquery自动完成,url作为源JSON

Php Jquery自动完成,url作为源JSON,php,jquery,json,url,jquery-ui-autocomplete,Php,Jquery,Json,Url,Jquery Ui Autocomplete,我没有成功地使用jQuery autocomplete和url,我遵循了jQuery UI autocomplete和JSON from url,我更改了参数,将query改为t,将短语改为Title,但它不起作用。你能帮我吗 $("#tags").autocomplete({ source: function (request, response) { $.ajax({ url: "http://www.omdbapi.com/",

我没有成功地使用jQuery autocomplete和url,我遵循了jQuery UI autocomplete和JSON from url,我更改了参数,将query改为t,将短语改为Title,但它不起作用。你能帮我吗

$("#tags").autocomplete({
    source: function (request, response) {
        $.ajax({
            url: "http://www.omdbapi.com/",
            data: { t: request.term },
            success: function (data) {
                var transformed = $.map(data, function (el) {
                    return {
                        label: el.Title,
                        id: el.Years
                    };
                });
                response(transformed);
            },
            error: function () {
                response([]);
            }
        });
    });
});

您不能直接使用它来填充列表。此OMDb服务为每个请求返回一项

在JSFIDLE尝试过这个

 $( function() {

    $( "#tags" ).autocomplete({
      source: availableTags
    });
    $( "#tags" ).autocomplete({
      source: function( request, response ) {
        $.ajax( {
          url: "//www.omdbapi.com/",
          dataType: "jsonp",
          data: {
            t: request.term,
            type: 'movie'
          },
          success: function( data ) {
             alert(JSON.stringify(data));
            // Handle 'no match' indicated by [ "" ] response
            response( data.length === 1 && data[ 0 ].length === 0 ? [] : data );
          }
        } );
      },
      minLength: 2,
      select: function( event, ui ) {
        log( ui.item ?
          "Selected: " + ui.item.value + " aka " + ui.item.id :
          "Nothing selected, input was " + this.value );
      }
    });
  } );

您是否使用
s
by Search
中通过
Parameters
进行了尝试?因为您需要片名,但是
t
只返回
title
的一部影片。另外,写入console.log(数据);要查看是否返回了
数据

已更新

但是有一个问题,当结果太大时,omdbapi.com返回错误消息,使用参数
page

请尝试下面的代码

<html>
<head>
    <script src='https://code.jquery.com/jquery-2.2.4.js'></script>
    <script src='https://code.jquery.com/ui/1.12.0/jquery-ui.js'></script>
    <link href="https://code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css" rel="stylesheet" media="screen" />
    <script type='text/javascript'>

    </script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#tags").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        method: "GET",
                        dataType: "json",
                        url: "http://www.omdbapi.com/?s="+request.term,
                        success: function (data) {
                            console.log(data);
                            // data.Search uses because we have `title`s in {"Search":[{..
                            var transformed = $.map(data.Search, function (el) {
                             return {
                             label: el.Title,
                             id: el.Years
                             };
                             });
                             response(transformed);
                        },
                        error: function () {
                            response([]);
                        }
                    });
                }
            });
        });
    </script>
</head>
<body>

  <div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags">
  </div>
</body>
</html>

$(文档).ready(函数(){
$(“#标记”).autocomplete({
来源:功能(请求、响应){
$.ajax({
方法:“获取”,
数据类型:“json”,
url:“http://www.omdbapi.com/?s=“+request.term,
成功:功能(数据){
控制台日志(数据);
//data.Search之所以使用,是因为我们在{“Search”中有`title`s:[{。。
var transformed=$.map(data.Search,函数(el){
返回{
标签:el.Title,
id:el.年
};
});
反应(转化);
},
错误:函数(){
答复([]);
}
});
}
});
});
标签:

您是否在ajax中使用了选项
方法:“POST”
数据类型:“json”
?而且,您无法通过
$\u POST[“t”]
捕获
t
您可以编写一段代码吗?我尝试过,但不起作用。这是我简单测试的代码。那么,它起作用了吗?