使用预转换的json url进行jQuery UI自动完成

时间:2016-09-16 04:03:35

标签: javascript php jquery json jquery-ui

好的,所以我理解jQueryUI期望键/值形式的对象具有键的“值”和“标签”,所以我已经将我的数据转换为这种json格式。现在我只是不确定如何最简单的方式来源我的json url。关于这个问题的所有其他文章都表明需要提取数据并对其进行转换,这不是我的情况。

我的json文件位于 getuser.php?name = brian

[
   {"label":"Brian Aa","value":"7e36e"},
   {"label":"Brian Ba","value":"3e497"},
   {"label":"Brian Bc","value":"c3263"},
   {"label":"Brian Cc","value":"5be94"}
]

我的自动完成JS:

$("#test").autocomplete({
  source: function(request, response) {
    "sample.com/getusers.php?name="+$("#test").val(), request, response;
  },
  minLength:2
});

和HTML

<div>
  <label for="tags">Requested By: </label>
  <input id="test">
</div>

现在我在输入时什么都没有,假设我必须设置ajax,但我认为我已经看到了一个非常简单的解决方案的例子,当JSON已经格式化但似乎无法找到它。

2 个答案:

答案 0 :(得分:0)

源函数不正确,您需要从服务器获取数据并将响应用作调用,请参阅Autocomplete API

  source: function(request, response) {
     var url = "sample.com/getusers.php?name="+$("#test").val();
     $.get(url).done(function(data){
       response(data);
     }).fail(function(error){
        //dosomething here
     });
  }

答案 1 :(得分:0)

这是一个做ajax调用的问题,我只是觉得有一个更简单的方法。

$( function() {
  $( "#test" ).autocomplete({
    source: function( request, response ) {
      $.ajax( {
        url: "sample/getusers.php?name="+$("#test").val(),
        dataType: "json",
        data: {
          term: request.term
        },
        success: function( data ) {
          response( data );
        }
      } );
    },
    minLength: 2,
    select: function( event, ui ) {
    }
  } );
} );