我有以下观点:
index.html.js
<h5>Select your state:</h5>
<%= select_tag "state", options_for_select(@states.collect{|x| x[0]}), :onchange => '$.get("/home/populate_options")' %>
其中@states是一个状态缩写数组,如:
@states
[
['AK', 'AK'],
['AL', 'AL'],
. . .
]
如何通过ajax将包含所选状态值的参数(如果选择了Alaska,“AK”应该发送到控制器操作)传递给我的控制器操作?
我是否必须在发送$.get("/home/populate_options")
之前在我的javascript中手动建立网址,以使其看起来更像$.get("/home/populate_options/AK")
?也许我需要改变我使用帮助器的方式,所以我实际上可以使用'rails-like'帮助器,只需使用符号发送参数:state =&gt; “AK”?
答案 0 :(得分:1)
试试这个:
当你有@states = [['AK','AK'],['AL','AL']]
这样的时候。您不需要collect
使用@states
即可。
要在params onchange
中发送值,您可以执行以下操作:
<%= select_tag "state", options_for_select(@states), :onchange => '$.get("/home/populate_options?state="+$(this).val())' %>
但是在你的问题中,目前尚不清楚你在哪里准确填充ajax
的数据。