2012-06-02 35 views
1

我正在使用JQuery和Rails開發自動填充表單。然而,我不知道如何從我的數據庫中提取值到JQuery(我相信這必須通過Rails完成)。如何使用數據庫值填充JQuery數組

這是jQuery的

<script> 
    $(document).ready(function() { 
    $("#BOOKSEARCH").autocomplete({ 
     source: programmingLang 
    }); 
}); 
var programmingLang = ["ActionScript","AppleScript","Asp","BASIC","C","C++", 
    "Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell", 
    "Java","JavaScript","Lisp","Perl","PHP","Python","Ruby","Scala","Scheme"]; 
</script> 

但是我的自動完成功能在自動完成從硬編碼陣列填充的時刻。如何使用我的數據值從軌道填充此數組?

感謝

回答

2

試試這個:

var programmingLang = <%= Language.all.map(&:name).to_json.html_safe %>; 

假設你有有一個模型語言名稱列

確保您沒有數千個o r記錄,導致這會減慢甚至可能會超時錯誤。在這種情況下,您應該使用ajax。有幾個解釋阿賈克斯事情的答案。

var programmingLang = <%= ruby_array.to_json.html_safe %>; 
+0

使用Json是要走的路,謝謝 – pretobomba

0

你可以用一個簡單的AJAX請求到一個動作返回該數組做到這一點:

$(document).ready(function() { 
    $.get('path-to-json', function(data){ 
    $("#BOOKSEARCH").autocomplete({ 
     source: data 
    }); 
}); 
+0

如果你有有限的標籤,那麼沒有使用打擊服務器,更好地將記錄以陣列的形式.. –

+0

這是真的。這取決於自動完成的實現方式。 jQueryUI有一些動態演示(http://jqueryui.com/demos/autocomplete/#remote)和靜態(http://jqueryui.com/demos/autocomplete/#default)版本可能有所幫助。 – topek

0

您的導軌控制器需要返回的陣列(或JSON對象,取決於你JS的要求)這些值。
您可以通過調用簡單的ajax調用此控制器來檢索數據。
一旦你有數據,你可以用同樣的方式填充它。
你可以找到更多關於rails ajax here的信息。

+1

如果你有有限的標籤,那麼沒有使用擊中服務器,更好地將記錄以陣列的形式。 –

相關問題