我需要从查询结果中创建一个带有optgroup的选项列表,如下所示:
<select>
<optgroup label="here one of the results of query">
<option>rest of results</option>
</optgroup>
</select>
我需要这样的东西(或者更好)。 php中的示例:
<?php
$sql= "query here";
$result=$connection->createCommand($sql)->queryAll(); //to execute the query and save in the variable result
for ($i=1; $i <count($result) ; $i++)
{
$a = $i-1
if ($result[$a]["optiongroup"] == $result[$i]["optiongroup"])
{
// agree to the optiongroup with an option
}
else
{
// close the optiongroup and starts a new option group
}
}
?>
我有这个:
控制器:
@componentes = Tipo.find_by_sql("SELECT t1.tip_titulo as pieza, t2.tip_id, t2.tip_titulo FROM `tipos` t1
LEFT JOIN tipos t2 ON (t1.tip_id = t2.tip_id_padre)
WHERE t1.tip_id_padre IN (38)")
在查询中,结果显示如下:
pieza tip_id tip_titulo
Fuente de poder 41 Ventilador
Fuente de poder 42 Conector de alimentacion
Memoria Ram 43 Placa
Memoria Ram 44 Reloj
所以select必须以这种方式出现:
<select>
<optgroup label="Fuente de poder">
<option value="41">Ventilador</option>
<option value="42">Conector de alimentacion</option>
</optgroup>
<optgroup label="Memoria RAM">
<option value="43">Placa</option>
<option value="44">Reloj</option>
</optgroup>
</select>
如何使用Rails 5.0.1解决这个问题? 问候。
答案 0 :(得分:0)
在常规rails应用程序中,您应该定义一个视图模板(应该具有html.erb结尾的控制器名称,例如products.html.erb)
然后在products.html.erb中定义:
<select>
<optgroup label="here one of the results of query">
<% @components.each do |component| %>
<option value='<%= component.tip_id %>'> <%= component.tip_titulo %></option>
<%end%>
</select>
因此,您将看到在控制器中定义的@componenets可以在模板视图中自动访问。
请参阅Rails的文档选择http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select
答案 1 :(得分:0)
我确实知道@Joel_Blum,看:
<select class="form-control" name="tip_id_componente[]" id="tip_id_componente" multiple="multiple" size="8" style="color: black; width: 400px; ">
<% @componentes.each do |c| %>
<option id="<%= c.tip_id %>" value="<%= c.tip_id %>"><%= c.tip_titulo %> (<%= c.pieza %>)</option>
<% end %>
</select>
但如果我同意这样的选择组,那么它似乎没有选择组:
<select class="form-control" name="tip_id_componente[]" id="tip_id_componente" multiple="multiple" size="8" style="color: black; width: 400px; ">
<% @componentes.each do |c| %>
<optgroup label="<%=c.pieza%>">
<option id="<%= c.tip_id %>" value="<%= c.tip_id %>"><%= c.tip_titulo %> (<%= c.pieza %>)</option>
</optgroup>
<% end %>
然后显示如下的html代码:
<select>
<optgroup label="Fuente de poder">
<option value="41">Ventilador</option>
</optgroup>
<optgroup label="Fuente de poder">
<option value="42">COnector de alimentacion</option>
</optgroup>
<optgroup label="Memoria ram">
<option value="43">placa</option>
</optgroup>
<optgroup label="Memoria ram">
<option value="44">reloj</option>
</optgroup>