2011-04-03 61 views
0

我拋出了一個簡單的例子與jquery自動完成,無法讓它的工作。我不知道什麼是錯的,沒有錯誤,沒有什麼是我的JSON錯誤,但它不顯示結果。難以置信:無法獲得結果顯示與jQuery UI自動完成

這裏是我的代碼

<div class="demo"> 

<div class="ui-widget"> 
    <label for="title">Title: </label> 
    <input id="test" /> 
</div> 


<script> 
$(function() { 
     $("#test").autocomplete({ 
      source: "/searchbackend.php" 
     }); 
}); 
</script> 

JSON:

{"title":["Metroid: Other M"]} 

回答

1

我猜你的輸出應該是這樣的["HELLO","HOW","DO","YOU","DO","?"]所以用一維數組來輸出JSON。

$array = array("HELLO", "HOW", "DO", "YOU", "DO", "?"); 

echo json_encode($array); 

男人..這完美的作品。

$array = array(
       array("label" => "HELLO", "value" => "H"), 
       array("label" => "HOW", "value" => "H"), 
       array("label" => "DO", "value" => "D"), 
       array("label" => "YOU", "value" => "Y"), 
       array("label" => "DO", "value" => "D")); 

echo json_encode($array); 

也嘗試改變source: "/searchbackend.php"source: "searchbackend.php"

+0

謝謝,這是問題的一部分......現在看來,自動完成將無法正常工作,除非我在我的json數組中有「value」和「label」。所以我不能只使用「標題」 試圖找出是否有一種方法來指定自定義參數,而不是硬編輯js源代碼。 – x3sphere 2011-04-03 05:43:09

+0

@ x3sphere ..表示你正試圖爲你的自動完成顯示'value-label'? – 2011-04-03 05:52:19

+0

[{「id」:「1」,「label」:「Metroid:其他M」}]作品 [{「id」:「1」,「title」:「Metroid:Other M」}] t 該腳本被硬編碼爲查找「標籤」,似乎沒有辦法改變這種情況。我可以輕鬆地將我的後端更改爲輸出標籤而不是標題,只是有點煩人。 – x3sphere 2011-04-03 06:02:36

2

fine manual(關於source選項):

當使用字符串時,自動完成插件預計字符串以指向一個URL將返回JSON數據的資源。 [...]數據本身可以採用與上述本地數據相同的格式。

而對於本地數據:

本地數據可以是字符串的簡單陣列,或者它包含對象的陣列中的每個項目,與任一標籤或屬性值或兩者。標籤屬性顯示在建議菜單中。在用戶從菜單中選擇一些內容後,該值將被插入到輸入元素中。

所以,你的JSON回報要麼是簡單的字符串數組或對象的一個​​這樣的數組:

[ 
    { label: 'Shown to humans', value: 'Value for the text input' }, 
    ... 
]