На что похож ответ запроса/сервера автоматического заполнения?

Это, кажется, черная дыра: После часа поиска веб-сайта UI jQuery, Переполнения стека и поиска с помощью Google, я должен все же найти наиболее основную информацию того, как записать сторону сервера AutoComplete.

Какой параметр передается серверу и на что должен быть похожим ответ JSON?

Я должен пропускать что-то, потому что, как все остальные изучали, как сделать это? Сайты только, кажется, обсуждают клиентский код JavaScript и никогда примеры серверной стороны или протокол.

Мне нужно достаточно для получения самой простой удаленной работы в качестве примера.

62
задан 21 January 2014 в 14:06

2 ответа

Следующий код работает на меня. Этому нужны закодированные данные json для работы. После того как мы получаем данные, они изменяют его согласно формату автоматического заполнения jQuery и также включают выбор

var $url = "http://some-url/get-json";
//name is the id of the textbox where autocomplete needs to be shown
$('#name').autocomplete(
{ 
source: function(request,response)  
{ 

  //gets data from the url in JSON format
  $.get($url, function(data)
  {         
    obj = JSON.parse(data);   //parse the data in JSON (if not already)
    response($.map(obj, function(item)
    {
      return {
        label: item.full_name,
        value: item.full_name,
        id:item.id,
        email:item.email,
        phone:item.phone,
      }
    }
  ));        //end response
});          //end get
},
select:function(event, ui)
{ 
 console.log(ui.item.full_name);
 console.log(ui.item.email);
}   

}); //end of autocomplete
1
ответ дан 31 October 2019 в 14:06

Следующее Автоматическое заполнение от https://jqueryui.com/autocomplete/#remote-jsonp

ссылка демонстрации А: https://jqueryui.com/resources/demos/autocomplete/remote-jsonp.html

Вот исходный код:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>jQuery UI Autocomplete - Remote JSONP datasource</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <link rel="stylesheet" href="/resources/demos/style.css">
    <style>
    .ui-autocomplete-loading {
        background: white url("images/ui-anim_basic_16x16.gif") right center no-repeat;
    }
    </style>
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
    $( function() {
        function log( message ) {
            $( "<div>" ).text( message ).prependTo( "#log" );
            $( "#log" ).scrollTop( 0 );
        }

        $( "#birds" ).autocomplete({
            source: function( request, response ) {
                $.ajax( {
                    url: "search.php",
                    dataType: "jsonp",
                    data: {
                        term: request.term
                    },
                    success: function( data ) {
                        response( data );
                    }
                } );
            },
            minLength: 2,
            select: function( event, ui ) {
                log( "Selected: " + ui.item.value + " aka " + ui.item.id );
            }
        } );
    } );
    </script>
</head>
<body>

<div class="ui-widget">
    <label for="birds">Birds: </label>
    <input id="birds">
</div>

<div class="ui-widget" style="margin-top:2em; font-family:Arial">
    Result:
    <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>


</body>
</html>

0
ответ дан 31 October 2019 в 14:06

Другие вопросы по тегам:

Похожие вопросы: