JSON + PHP + JQuery +自动完成问题

问题描述:

只从今天开始,但我遇到了大量问题,试图理解JSON/AJAX等,我已经得到了我的代码到目前为止,但难以知道如何返回正在被AJAX请求到jQuery Auto完成功能。 [ “UGA”, “UK4”, “全球不包括美国,加拿大和加勒比海”]:JSON + PHP + JQuery +自动完成问题

var autocomplete = new function(){ 
this.init = function() { 
    $('#insurance_destination').autocomplete({source: lookup}); 
} 

    function lookup(){ 
    $.ajax({ 
     url: "scripts/php/autocomplete.php", 
     data: {query:this.term}, 
     dataType: "json", 
     cache : false, 
     success: function(data) {  
      for(key in data){ 
       return { 
        label: key, 
        value: data[key][0] 
        } 
      }          
     }  
}); 
} 

}

和示例JSON字符串由PHP脚本 { “乌干达” 返回}

通常情况下,你不必做AJAX查询自己:

$('#insurance_destination').autocomplete('url_here', {options_here}); 

这是假设我们谈论标准的jQuery自动完成插件。我理解正确吗?

编辑 检查API
http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions
也有一些例子。

+0

我也尝试太,但它似乎没有不工作要么......这可能是我的PHP的问题,尽管使用手动代码它返回的JSON字符串似乎工作正常,但我无法让自动填充框填充数据。 – RohanCS 2010-05-04 20:59:27

+1

它不应该采用json,值应该用换行符分隔。查看这个页面的例子,特别是提供的示例php脚本:http://view.jquery.com/trunk/plugins/autocomplete/demo/ 让我知道它是否有帮助。 – 2010-05-04 22:52:04

这是我已经结束了的代码,它工作于Chrome和Firefox,但不是在IE 6/7 ...

var autocomplete = new function(){ 
    this.init = function() { 
     $('#insurance_destination').autocomplete({ 
      source: function(request, response) { 
       debugger; 
       $.ajax({ 
        url: "scripts/php/autocomplete.php", 
        dataType: "json", 
        data: {query:this.term}, 
        success: function(data) { 
        response($.map(data.countries, function(item) { 
         return { 
          label: '<strong>'+item.name+'</strong>'+' '+item.description, 
          value: item.name, 
          code : item.region 
         } 
        })) 
       } 
      }) 
     }, 
     minLength: 2, 
     select: function(event, ui) { 
      $('#insurance_iso_code_hidden').val(ui.item.code); 
     }, 
     open: function() { 
     }, 
     close: function() { 

     } 
     }); 
    } 


    }