2016-12-15 119 views
-3

我想要在网络表单中获得下拉菜单或选择框(更喜欢后面的,因为可以一次选择多个值)。 在这种情况下,我已经得到下拉工作,基于measures.measurement_type。第二个需要measure.Measurement,按照第一个下拉列表中选择的类型进行过滤。 我似乎无法得到这个工作。我尝试了谷歌搜索,但没有成功。任何人都可以帮助我走上正确的轨道吗? 我找到了使用数组的解决方案,但没有使用1数据库表的工作解决方案。使用Ruby 4.2 感谢根据下拉列表填充选择框

+0

任何代码?你试过什么了?我会说你会需要JS的 – Fallenhero

+0

首先,没有红宝石4.2版本。我猜这是一个错字。 其次,我做了一个简单的谷歌搜索与您的问题的标题,我发现两个stackoverflow的答案与确切的结果你在找什么。 下一次,请尝试谷歌它并发布的问题 – Pramod

+0

可能的重复[填充一个下拉列表基于其他下拉列表的选择](http://stackoverflow.com/questions/19039740/populate-one-基于下拉列表的选择其他下拉列表) – Pramod

回答

0

有两种选择。

  1. 使用AJAX调用。就像@Ronan在他的回答中所说的,你需要对第一个下拉列表的选择(在改变方法上)进行AJAX调用。在rails动作方法中,您可以渲染一个JS部分,您可以在其中为第二个下拉列表设置过滤项目。

  2. 另一个完全是客户端。就像将所有可能的项目都下拉到客户端一样。将类型和度量同时表示为javascript数组。然后,在更改类型下拉列表时,使用jQuery过滤测量数组,然后填充第二个下拉列表。

0

你必须使用一些Ajax做这件事

,不能看到其他的方式。当您的measures.measurement_type发生更改时,您会发送一个请求,将请求的measurement_type作为参数传递给您的操作。在那个动作中,你根据在param中传递的measurement_type检索度量值的集合,然后返回这个数据在你的ajax回调中被处理。在该方法中,对于某些jQuery,您应该使用返回的选项填充第二个输入。

这是一些更简单的解释...你应该看一看更完整的文章,以便逐步理解。建议这一个,例如:https://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax。祝你好运!

+0

谢谢,将调查。以前从未使用Ajax,所以我没有想到这一点。 – Marco

+0

而现在没有想到。只注意到第二个表中的数据根本没有保存。这需要先解决。 – Marco

相关问题