R Shiny -如何在选择输入中制作多级数组



我可以在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>

有可能吗?

如果您想设置selectInputname属性,您可以在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(...)

我很确定有一种更优雅的方法来做这件事,但也许这可以帮助您开始。

相关内容

  • 没有找到相关文章

最新更新