我想根據從collection_select下拉列表中的選擇,從數據庫中顯示最近的分數。我知道我需要聽取下拉菜單上的更改事件,但我不知道如何執行AJAX請求或如何在視圖中顯示數據。使用Rails,Ajax和Jquery基於下拉菜單更改內容
0
A
回答
1
好吧,我會用category
和subcategory
模型寫一個例子。
首先是車型之間的關係:與simple_form gem
(你可以用form_for
做)
class Category
has_many :subcategories
has_many :objects
end
class Subcategory
belongs_to :category
has_many :objects
end
class Object
belongs_to :category
belongs_to :subcategory
end
現在上查看的格式,例如:
<%= simple_form_for(@object, :html => {:multipart => true }) do |f| %>
<%= f.input :category, :collection => Category.all :prompt => "Select Category" %>
<%= f.input :subcategory, :label_html => { :class => 'subcategory_label_class' } do %>
<%= f.grouped_collection_select :subcategory_id, Category.order_by(:title), :subcategories, :title, :id, :name, include_blank: true %>
<% end %>
<%= f.button :submit %>
<% end %>
有了這個,我們分組的子類別與他們的父類別。
下一步必須將代碼添加到您的objects.js.coffee
$('#object_subcategory_id').parent().hide()
subcategories = $('#object_subcategory_id').html()
$('#object_category').change ->
category = $('#object_category :selected').text()
escaped_category = category.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(subcategories).filter("optgroup[label='#{escaped_category}']").html()
if options
$('#object_subcategory_id').html(options)
$('.subcategory_label_class').show()
$('#object_subcategory_id').parent().show()
else
$('#object_subcategory_id').empty()
$('.subcategory_label_class').hide()
$('#object_subcategory_id').parent().hide()
可以適應這個例子您的需求。
我希望它有幫助。
問候!
2
你需要建立一個單獨的控制器,並在你的更改事件被觸發時發送ajax請求,控制器發回一個js響應,你必須在你的客戶端處理javascript ...以下鏈接應該給你一個示例http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/
相關問題
- 1. jQuery通過AJAX更改下拉菜單
- 2. 基於jQuery下拉菜單
- 3. 更改下拉菜單上的內容
- 4. 使用下拉菜單更改div的內容,JavaScript和PHP
- 5. 使用下拉菜單更改兩個不同Div的內容
- 6. 使用javascript在下拉菜單中更改內容
- 7. 下拉菜單內容比下拉菜單更寬
- 8. 語言改變基於下拉菜單
- 9. jquery下拉菜單,鄰居內容
- 10. Ajax下拉選擇更改TextArea內容
- 11. 使用jQuery和javascript在下拉菜單中更改選定值
- 12. JQuery AJAX和autopopulate下拉菜單
- 13. 使用php和ajax下拉菜單
- 14. 使用ajax和css下拉菜單
- 15. 使用PHP和jQuery從下拉菜單中選擇日期後更新內容
- 16. 下拉菜單的CSS擴展基於內容
- 17. 基於MySQL表的內容的引導下拉菜單
- 18. 如果使用JQuery和AJAX後在表單中選擇另一個下拉菜單,則更改下拉值
- 19. 使用下拉菜單更改圖像
- 20. 用下拉菜單調用jquery ajax()?
- 21. 使基於一個下拉菜單
- 22. 使用jquery下拉菜單
- 23. Drupal 7 - 如何使用AJAX更改多個下拉菜單?
- 24. 更改下拉菜單
- 25. JAVA - 基於另一個下拉菜單下拉菜單項
- 26. jQuery - 在'draggable div'下拉菜單中改變'正常div'內容
- 27. 下拉菜單基於之前的JQuery選擇器下拉菜單出現
- 28. 基於兩個下拉菜單輸出文本更改
- 29. 更改圖像基於選擇在2個下拉菜單
- 30. 在下拉菜單中更改內容打開選擇