【问题标题】:Get id from value in dropdown, send it to controller, load data and reload page从下拉列表中的值获取 id,将其发送到控制器,加载数据并重新加载页面
【发布时间】:2016-11-04 23:54:41
【问题描述】:

我想显示一个下拉列表,将 id 从 value 参数发送到控制器,然后加载数据并重新加载页面。

想象一下。您是页面的管理员。您有所有用户的列表。现在您想查看特定用户的项目、帖子和 cmets。您有一个下拉菜单,选择用户和数据将加载他的项目、帖子和 cmets。现在您想查看其他用户的数据。和以前一样,您将在下拉列表中选择另一个用户,数据将重新加载,您将在同一页面上看到他们。

到目前为止,我知道如何制作下拉列表并获取 jQuery 代码的 id:

<%= select_tag "construction_id", options_from_collection_for_select(@constructions, "id", "title"), :onchange => "constructions_dropdown(this.value)", class: "form-control", id: "dropdown_const" %>

HTML 如下所示:

<select class="form-control" id="dropdown_const" name="construction_id" onchange="constructions_dropdown(this.value)">
    <option value="25">My construction</option>
    <option value="26">Another construction</option>
</select>

如果我选择另一种构造,我会通过以下方式获得 id:

function constructions_dropdown(construction_id) {
    alert(construction_id)
}

但是现在呢?我还在索引页面上。所以也许我应该做一个form_tag?我应该如何将 construction_id 发送到控制器并确保 id 不是 nil 然后加载数据?因为我认为页面的重新加载应该通过提交表单来完成。

【问题讨论】:

    标签: javascript jquery html ruby-on-rails ajax


    【解决方案1】:

    如果你使用 jQuery,你应该使用 Jquery Ajax 来获取你想要的信息。从结果中您可以重新加载或打印新信息http://api.jquery.com/jquery.ajax/

    【讨论】:

    • 这只是答案的一部分。我知道我可以以及如何将数据发送到控制器。但随后我需要在控制器中加载数据(一个问题)并重新加载页面。我想我需要用在更改、提交等上。但是我对 jQuery 的了解不是很好。
    • 您可以修改内部 html 元素以删除旧选项并分配新选项。另一种选择是使用 jQuery UI 中的 select 元素:jqueryui.com/selectmenu/#default
    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 2014-05-20
    • 2020-04-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多