在我的页面上,我列出了输入数据库的所有报价。我希望能够从下拉框中选择一个用户,以便一旦选择了该用户,便会更新报价列表,以便仅显示该用户的报价。
我遇到的麻烦是我不太熟悉JavaScript,我相信这是大多数人可以解决此问题的方式。我已经有基于用户更新列表的代码,只是我不明白如何使用JavaScript动态更新列表。
我的代码的简要概述:
控制器
if quoted_by = "all"
# Show every quote
else
# Show quotes only made by user
end
HTML
<span id="msQuotedBy">
<b>Filter by Initials: </b>
<%= select(:msQuotedBy, :select, ['all'] + @initials.collect {|p| [p, p]}, {:selected => @quoted_by}) %>
</span>
JavaScript ,现在我的JavaScript使用以下代码可以很好地动态更新页面上的日历,但是我应该怎么做来更新报价列表?
$('#msQuotedBy_select').change ->
$('#msCalendar').fullCalendar('rerenderEvents')
控制器显然是不正确的,但这就是逻辑在我脑海中发挥出来的方式。像日历一样,如何使用('#msQuotedBy_select')
值更新列表?
答案 0 :(得分:1)
我可能将对控制器中的特定操作使用AJAX调用,在该操作中,从用户检索报价列表,并使用.js.erb
文件进行响应。在此文件中执行以下操作:
<% html_content = j render(partial: 'a_partial_with_the_quotes', locals: { quotes: @user_quotes }) %>
$('#yourListOfQuotesContainer').html("<%= html_content %>);
或者类似的东西(我没有测试过,代码中可能有错误,但这是一般的想法)