动态集合使用jQuery和AJAX在Rails中选择

时间:2011-08-04 16:19:56

标签: ruby-on-rails

我有一个简单的应用程序,我允许用户创建帖子。要创建帖子,用户需要选择一个类别。我想使用集合选择来显示类别。当用户选择一个类别时,我需要在其下方显示另一个选择集合,其中列出了该类别中的子类别。所有这些都发生在帖子/新页面中。

我尝试使用jQuery和AJAX实现这一点,我只能找到第一个集合中的类别ID,通过显示一个显示该id的alert()框来确认。但我不知道如何使用该id向服务器进行AJAX POST,检索子类别,然后显示第二个集合选择。

我在网上找到的所有例子都不适用于我。任何人都可以为我提供完整的工作代码,可以满足我的要求吗?感谢。

1 个答案:

答案 0 :(得分:3)

首先,编写一个控制器动作,接受一个类别ID作为参数,并以下面的格式以纯文本形式呈现它的子类别:

<option value="1">First subcategory</option>
<option value="2">Second subcategory</option>
<option value="3">Third subcategory</option>

接下来,编写一个AJAX请求,该请求在类别下拉列表更改时触发:

$('#category_dropdown').change(function() {
  var subcategory_url = "/get_subcategories?category_id=" + $(this).val();
  var subcategory_select = $(this).next('select');

  $.ajax({
    url: subcategory_url,
    success: function(data) {
      subcategory_select.html("<option selected=selected>Select Subcategory</option>" + data);
    }
  });
});