我可以在Shiny的选择输入上创建多级数组吗?我怎样才能实现它?
这是我在ui.R
中的代码,
# Site 1 options.
selectInput(
inputId = "site1",
label = "Select a first site:",
choices = siteChoices
),
# Site 2 options.
selectInput(
inputId = "site2",
label = "Select a second site:",
choices = c('None', siteChoices)
),
创建这个html,
<select id="site1">
<option value="9" selected>9 - Wood Shed</option>
<option value="13">13 - V.V.</option>
<option value="18">18 - Meryls House</option>
</select>
<select id="site2">
<option value="None" selected>None</option>
<option value="13">13 - V.V.</option>
<option value="18">18 - Meryls House</option>
</select>
但是我想创建这个,
<select id="site1" name="sites[site1]">
<option value="9" selected>9 - Wood Shed</option>
<option value="13">13 - V.V.</option>
<option value="18">18 - Meryls House</option>
</select>
<select id="site2" name="sites[site2]">
<option value="None" selected>None</option>
<option value="13">13 - V.V.</option>
<option value="18">18 - Meryls House</option>
</select>
有可能吗?
如果您想设置selectInput
的name
属性,您可以在selectInput
返回的结构上浏览一下。例如:
obj<-selectInput(inputId = "site1",label = "Select a first site:",choices = letters[1:3])
str(obj)
通过查看前一行的输出,您将看到在哪里输入name
属性:
obj$children[[2]]$children[[1]]$attribs$name<-"somename"
obj
#just the relevant part
#<select id="site1" name="somename">
# <option value="a" selected>a</option>
# <option value="b">b</option>
# <option value="c">c</option>
#</select>
如您所见,名称已设置。您可以在ui
定义之外定义此对象,并将obj
放在正确的位置,而不是selectInput(...)
。
我很确定有一种更优雅的方法来做这件事,但也许这可以帮助您开始。