2012-08-02 98 views
0

jQuery的AJAX我使用jQuery自動完成和想要從名爲some.php php文件數據,其中只寫了獲得與自動完成

<?php 
echo "Hello World"; 
?> 

這裏結果是JavaScript的

<script type="text/javascript"> 
$(function(){ 
    $("#key").autocomplete({ 
     source: function(){ 
      $.ajax({ 
       type: "POST", 
       url: "./some.php", 
       data: {key: $("#key").val()}, 
       success: function(result){ 
        // what code is needed here to be placed 
       } 
      }); 
     } 
    }); 
}); 
</script> 

和HTML通過=>

<input type="text" name="key" id="key"> 

我的思維方式腳本編寫正確,因爲當我在成功函數提醒(結果)它得到「你好世界」,但我希望它在下拉框中,如何解決這個問題,請幫助我,謝謝: )

+0

嘗試... http://jqueryui.com/demos/autocomplete/ – 2012-08-02 20:49:49

+0

再次查看[jQuery UI自動完成文檔](http://jqueryui.com/demos/autocomplete/#remote)。你不需要一個函數作爲源。只是做腳踏實地的腳本。 – Matt 2012-08-02 20:49:58

+0

難道你不能展示這個例子嗎?我已經閱讀,但仍然無法得到它 – tnanoba 2012-08-02 20:56:43

回答

1

試試這個:

JS:

<script type="text/javascript"> 
$(function(){ 
    $("#key").autocomplete({ 
     source: "./some.php" 
    }); 
}); 
</script> 

PHP:

$result = array('1' => 'Hello World'); 

echo json_encode($result); 
1
$("#key").autocomplete({ 
    source: function(request, response){ 
     $.ajax({ 
      type: "POST", 
      url: "./some.php", 
      data: {key: request.term}, 
      success: function(result){ 

       response(result); 
      } 
     }); 
    } 
}); 

response(result)將顯示自動完成菜單 - result應的項目的數組(其中的每一項是一個字符串或與valuelabel鍵的對象)。

由於SJ GJ提到過,您可以簡單地設置source: "./some.php",但需要修改some.php以接受請求參數term並返回一個json數組項。

+0

是否需要在php文件中使用json_encode()函數? – tnanoba 2012-08-02 21:01:20

+0

簡短回答是是的 – ori 2012-08-02 21:02:01

+0

我已經嘗試了你的建議,並且還沒有錯,我在php文件'$ array = array(「one」,「two」,「three」)中有這個; echo json_encode($ array);'我在自動完成中得到奇怪的結果 – tnanoba 2012-08-02 21:37:33