动态下拉,显示结果

时间:2016-01-24 19:15:32

标签: javascript ruby-on-rails

我有一个模型,Firms,具有以下属性:状态和名称。我想要做的是让用户查看处于选定状态的名称列表。我能够在下拉框中获取状态,但在选择状态后,我很难在下面显示名称。我在这里看了整个选项,但无法找到解决方案。我认为我需要一些JavaScript?谢谢你的帮助。以下是我的观看代码。

 <h4>Select a State</h4>
<%= select_tag :state, options_for_select(Firm.order(:state).uniq.pluck(:state)) %>

以下是我希望结果如下所示的示例:

用户选择州:宾夕法尼亚州

宾夕法尼亚州的名字如下: 盒子公司 汽车公司 。 。

1 个答案:

答案 0 :(得分:1)

用户选择一个州,javascript event次点火,ajax来电,结果显示在:

HTML

<%= select_tag :state, options_for_select(Firm.order(:state).uniq.pluck(:state)), id: "my-select" %>
<div id='names-wrapper'></div>

咖啡

  $("#my-select").change ->
   state = $(this).val()
   alert(state)
   $.ajax
     url: "/firms/get_names"
     data:
       state: state
     success: (data) ->
       $('#names-wrapper').html('')
       $.each data, (index, value) -> 
         $('#names-wrapper').append(value)

路由

resources :firms do
  collection do
    get :get_names
  end
end

控制器

class FirmsController < ApplicationControler
  def get_names
    state = params[:state]
    names = Firm.where(state: state).pluck(:name)
    return render json: names.to_json
  end
end