【问题标题】:How do i populate a select with a db call based on another select如何使用基于另一个选择的数据库调用填充选择
【发布时间】:2015-10-28 02:06:34
【问题描述】:

我有一个表单,其中下拉 2 是由于在另一个选择下拉 1 中所做的选择而填充的。如果下拉 1 有选项 A、B 和 C(从数据库单独调用),如果我选择 A,应用程序将使用 A 作为变量执行 GET 并使用返回的结果填充下拉列表 2。

我认为这可以通过多种方式完成,但还没有完全弄清楚该采取哪个方向。我要采取的第一种方法是立即执行调用并将与 A、B 和 C 关联的值添加到下拉列表 1,因此当它被激活时,附加值会填充下拉列表 2。此外,我还试图弄清楚如何触发基于用户点击第一个选择的动态 HTTP GET 调用。

任何人都可以就如何实现这一点提供一些指导。

编辑

我们如何执行 HTTP 获取的示例

def get_call(routePath)
  started_at = Time.now
  enc_url = URI.encode("#{settings.abacus_service_endpoint}#{routePath}")
  uri = URI.parse(enc_url)
  http = Net::HTTP.new(uri.host, uri.port)

  req = Net::HTTP::Get.new(uri.request_uri, get_header_for_abacus_service)     
  resp = http.request(req)
  logger.bench 'SERVICE - GET', started_at, routePath
  return resp if response_ok?(resp)
end

【问题讨论】:

标签: ruby-on-rails http


【解决方案1】:

您是否尝试过查看动态选择菜单上的 rbates railscast。如果你还没有那么请看看它。 在 is railscast 中,他根据所选国家/地区填充州/省,如果听起来您想要在此处实现它们,请点击链接。

http://railscasts.com/episodes/88-dynamic-select-menus

希望对你有所帮助。

【讨论】:

  • 感谢您的信息。好像这就是我要找的。我是否成功是另一回事。
【解决方案2】:

你可以做两件事

  1. 使用 jQuery 的 change 事件发出 ajax 请求以获取另一个 select 的数据并填充选项。

  2. 把另一个select放在一个partial中并渲染它

【讨论】:

  • 您能详细说明一下partials的使用吗?我们目前正在通过以下类型的方法执行 HTTP 请求,因此希望继续这样做,因此此时不想通过 jQuery 执行 AJAX 请求。
  • 真的坚持这一点,所以任何关于使用部分来实现这一点的澄清将不胜感激,肯定会得到一个勾号!
猜你喜欢
  • 1970-01-01
  • 2020-12-24
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多