如何从用于通过ajax填充下拉列表的数组中传递参数?

时间:2013-03-27 13:36:27

标签: jquery ruby-on-rails ajax parameters

我有以下观点:

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”?

1 个答案:

答案 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的数据。

相关问题