2016-04-03 101 views
2

我有以下的jQuery代码自动完成,如何使用AJAX调用PHP脚本来实现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); 
     } 
    }); 

只要用户输入在文本框中的一个关键,一个AJAX调用到PHP文件进行。这个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); 

    } 
?> 

出于某种原因,自动完成不工作我 - 我究竟做错了什么?

回答

2

在PHP中,您尝试使用$_GET['term'],但在JavaScript中,您的变量名为input。更改要使用的数据对象term而不是input

data: { 
    term: request.term 
},