2009-06-12 82 views
2

我有以下选择列表。Rails select_tag with ajax动作

<%= select_tag(:editlevel,options_from_collection_for_select(Level.all, :id, :name)) %> 

当用户选择从上述列表中的选项,以下列表应与基于上述选择从数据库中的值来填充。

<%= select_tag(:lques,{},{ :size =>10, :style => "width:200px"}) %> 

我想我应该使用onchange事件的remote_function。但我不知道如何使用它,并从数据库中填充后者列表中的值。有人能帮助我吗?

回答

2

,我解决了,这是一个简单的方法:

<select id="editlevel" name="editlevel" onchange=" 
    <%= remote_function(
      :update => 'lques', 
      :url => {:action => :lques}, 
      :with => "'level=' + $('editlevel').value %> 
"> 

</select> 

<select id="lques" name="lques"> 
</select> 

然后你lques动作可以只得到什么lques你需要记录和做options_for_select,它应该只是把从服务器$('lques').innerHTML

什么回来

这是空调代码,它没有经过测试。

+0

作为一个说明,尝试和不使用onchange,并使页面使用不显眼的JavaScript时,必须使用JavaScript。 (); 有大量的例子可以在线,你可以做这样的事情: input.onchange = function(){ populateFields(); } 当你回到它时,它使HTML阅读器更清晰,并且如果你需要再次使用相同的功能,它将使你有机会干掉你的视图。 – 2009-06-12 20:24:07