如何使用对PHP脚本的AJAX调用实现jQuery自动完成


How to do jQuery autocomplete using an AJAX call to a PHP script?

我有以下用于自动完成的jQuery代码,

$( "#text" ).autocomplete({
      source: function( request, response ) {
        $.ajax({
          type: 'GET',
          url: 'server.php',
          dataType: 'json',
          data: {
            input: request.term
          },
          success: function(data) {
          response( $.map(data, function(item) {
            return {
              label: item.Symbol + " - " + item.Name + " ( " + item.Exchange + " )"
            }
          }));
        }
        });
      },
      minLength: 1,
      select: function( event, ui ) {
           var symbol = ui.item.label.split(' ');
               setTimeout(function() {
                   $('#text').val(symbol[0]);
               },0);
      }
    });

每当用户在文本框中输入键时,就会对PHP文件进行AJAX调用。此PHP文件将从API检索数据,并更新自动完成功能的建议列表?

我在PHP端有以下代码,

<?php
if(!empty($_GET['term'])) {
        $term = $_GET['term'];
        $url = "http://dev.markitondemand.com/MODApis/Api/v2/Lookup/json?input=".$term;
        $j_response = file_get_contents($url);
        $j_response = json_decode($j_response);
        print json_encode($j_response);
    }
?>

出于某种原因,自动完成对我不起作用——我在这里做错了什么?

在PHP中,您试图使用$_GET['term'],但在JavaScript中,您的变量被称为input。将数据对象更改为使用term而不是input:

data: {
  term: request.term
},