R Shiny - 如何在选择输入中创建多级数组?

时间:2015-05-23 08:08:06

标签: r input 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>

有可能吗?

1 个答案:

答案 0 :(得分:1)

如果您想设置name的{​​{1}}属性,可以稍微浏览selectInput返回的结构。例如:

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

非常确定有一种更优雅的方式可以做到这一点,但也许这可以帮助你开始。