2011-12-15 58 views
0

我需要一個列表,當用戶在上面的輸入中鍵入一個字母時,列表顯示以該字母開頭的單詞。因此,如果用戶在輸入中鍵入「a」,則會彈出一個下拉列表ul並顯示以「a」,可能是「apple」或「artifact」開頭的外部php頁面中的單詞。此外,如果用戶鍵入「ab」,頁面應顯示以「ab」開頭的所有單詞。使用jquery/ajax填充外部頁面上的無序列表?

我知道我必須以某種方式使用Jquery ajax從外部頁面(這只是簡單的列表中)獲取數據,並根據用戶輸入的字母將特定數據插入到其他頁面。我怎樣才能做到這一點?

回答

0

如果這是從你的Ajax調用,這是返回字的數組回調,這樣的事情應該工作

function ajaxComplete(listOfWords){ 
    var ul = $("<ul />"); 
    for(var i = 0; i < listOfWords.length; i++) 
     ul.append("<li>" + listOfWords[i] + "</li>"); 
    $("#someDiv").html(ul); 
} 
0

如果你可以控制你的外部頁面,最簡單的方法是修改它以返回JSON數據。然後,您可以立即使用jQuery UI自動完成功能。

http://docs.jquery.com/UI/Autocomplete

當字符串是使用[作爲數據源參數]時,自動完成插件期望字符串以指向URL資源,將返回JSON數據。它可以位於同一臺主機上或不同的主機上(必須提供JSONP)。請求參數「term」被添加到該URL。數據本身可以採用與上述本地數據相同的格式。

如果您無法修改該頁面,則必須使用第三種類型的jQuery UI Autocomplete,它將回調傳遞給插件。然後,編寫一個回調函數,將.get()的數據從您的其他頁面解析出來。使用jQuery的DOM遍歷方法很容易。