ajax和rails脚本,用于根据rails 3上选定的单选按钮填充下拉列表值

时间:2011-03-08 04:57:17

标签: ruby-on-rails ajax

任何人都知道什么是可能的ajax和rails脚本,用于根据rails 3上的选定单选按钮填充下拉列表值。例如,有两种类型的平台选择(windows,unix)单选按钮然后单击unix radio按钮,下拉列表框将仅过滤unix类型的东西(补丁)。

想法是下拉列表中已有来自数据库的内容(<%= f.select:other_platform,Patch.all.map {| p | [“#{p.patch_type}#{p.number}: #{p.summary}“,p.id]},{:include_blank => true}%>)然后我需要做的是”仅过滤“具有基于单选按钮的Windows类型示例的值如果单击窗口类型已选中,则下拉菜单将仅显示窗口类型的修补程序并隐藏unix类型或其上包含unix字的列表,如regx(检查查询)以及是否选择或单击unix然后只有unix类型会出现在下拉菜单中

感谢 请回答

IMON


我的代码在这里: 这些是单选按钮:

 
 

我该怎么做ajax代码和这个选择框?什么是ajax的正确代码和单选按钮和这个选择框的一些附加代码。??

 true}%>

你的答案和例子非常感谢..

感谢, IMON

1 个答案:

答案 0 :(得分:0)

这很简单。 当用户单击单选按钮时,应调用ajax请求。 您可以在Ajax URL中传递参数以从服务器获取下拉列表。 然后从服务器响应所需的下拉,在Ajax调用中接收响应,填充dom元素。如果有任何疑问,请执行并询问。

编辑:

以下是您的代码的骨架。

Suppose you have three radio buttons:

> input type="radio" name="rdio" value="a" checked="checked" />
> input type="radio" name="rdio" value="b" />
> input type="radio" name="rdio" value="c" />

> div id="drop_down" />
Bind click event like this:

$("input[@name='rdio']").click(function(){
  var url = '/get_drop_down_options?radio_val=' + $(this).val()
  $("#drop_down").removeOption(/./)
  $.get(url, function(data) {
    $('#drop_down').addOption(data, false);
  });
});

In your controller,

def get_drop_down_options
  val = params[:radio_val]
  options = YourModel.collect{|x| "'#{x.id}' : '#{x.label}'"}    
  render :text => "{#{options.join(",")}}" 
end


Now you dont need partial.