2012-08-02 130 views
1

我想獲得響應內Ajax JqueryUi自動完成,但我不能在下拉框中得到結果。這裏是腳本=>jqueryui自動完成與Ajax響應

$(function(){ 
    $("#user_key").autocomplete({ 
     source: function(){ 
      var http = false; 
      if (window.XMLHttpRequest){ 
       http = new XMLHttpRequest(); 
      } else { 
       http = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      if (http){ 
       http.open("POST","./ajax/autocomplete.php",true); 
       http.onreadystatechange = function(){ 
        if (http.status==200 && http.readyState==4){ 
         this.value = http.responseText; 
        } 
       }; 
       http.send(null); 
      } 
     }, 
     close: function(){ 

     } 
    }); 
}); 
autocomplete.php

例如簡化爲只寫了<?php echo "hello"; ?> 我怎樣才能得到這個下拉框中的「hello」,爲什麼它是需要使用接近:在底部功能感謝:)

PS。我認爲我在編寫this.value時錯了= http.responseText,例如在寫alert(http.responseText)時它會從.php文件中得到結果。我怎麼能指出結果寫在下拉框?

+1

如果你使用jQuery,使用'$。員額()'或'$。阿賈克斯()'方法來做AJAX。 – Matt 2012-08-02 17:41:11

+0

P.S.你有沒有完全閱讀[jQuery UI自動完成文檔](http://jqueryui.com/demos/autocomplete/)? – Matt 2012-08-02 17:43:03

+0

事實上,我不知道jquery的Ajax,並且因爲我有這樣的腳本 – tnanoba 2012-08-02 17:47:47

回答

2

根據我所做的文檔和一些測試,您只需要將source屬性設置爲您的php腳本的url。

jQuery的UI代碼發送term參數的查詢字符串到指定存在的網址:source.php?term=hello

所以,在你的榜樣,下面應該工作,因爲你在你的PHP腳本正確處理查詢參數,應該返回一個JSON數組。

$(function(){ 
    $("#user_key").autocomplete({ 
     source: "./ajax/autocomplete.php", 
     minLength: 2 
    }); 
}); 

返回應具有以下格式的JSON數據:

[{ "id" : "Item1", "label" : "Item1", "value" : "Item1" }, 
{ "id": "Item2", "label" : "Item2", "value" : "Item2" }]