我想根据之前的 collection_select 选择填充 collection_select 的选项。我有一个选择运动,我想用基于该运动的团队填充下一个选择。
问题是我发现的所有示例都是针对旧版本的 ROR,所以我决定在这里问。我知道我必须添加一些讨厌的东西,例如:
html_options = {:onchange=>'d=$("#player_sports_id").val();$.ajax({type: "GET", url: "/players/returnsel1.js?sports_id="+d, dataType: "script" });'})
调用 player#returnsel1 并获得返回的 returnsel1.js.erb。在returnsel1 我有变量
@teamstoreturn=Teams.where(:sport_id=params[:sport_id])
那么jquery的returnsel1.js.erb应该是什么样子的呢?谢谢你。多里扬
edit1:这是它的实际外观,但它不起作用:
html_options = {:onchange=>'d=$("#player_sports_id").val();$.ajax({type: "GET", url: "/players/returnsel1?sports_id="+d, dataType: "script",success: function(data){ $("#player_teams_id").html(data)} });'})
在控制器中是这样的:
def returnsel1
@teamstoreturn=Team.where(:sports_id=>params[:sports_id])
render :inline => "<%= collection_select(:player, :teams_id, @teamstoreturn, :id, :naziv) %>"
end
如果我去 /players/returnsel1?sports_id=2 我得到正确的下拉菜单
我做错了什么?
edit2:应该有 dataType: "html" 而不是 dataType: "script" 现在它正在工作:)