如何根据radioButton选择将2个列表(fooChoices1和fooChoices2)切换为selectInput?
我希望带有2个列表的全局文件
此外,是否可以阻止SelectInput中的字符输入只选择列表(因为我在此选择上驱动SQL查询)?
感谢您的帮助
这是我的UI.R:
shinyUI(pageWithSidebar(
headerPanel("Measures"),
sidebarPanel(
radioButtons("base", "Select DB",
c("base1"="base-1","base2"="base-2")),
selectInput("cible", "Select le test:",
choices = fooChoices, selected = "ALL"),
),
mainPanel(
plotlyOutput("plot")
))
这是我的global.R文件:
fooChoices1<-c("ALL" = "00 00%",
"SPEC2" = "00 00297",
"SPEC3" = "00 00323",
"SPEC4" = "00 00362",
"SPEC5" = "00 00366",
"SPEC6" = "00 00399"
)
fooChoices2<-c("ALL" = "00 00%",
"SPEC2" = "00 00297",
"SPEC3" = "00 00323",
"SPEC4" = "00 00362",
"SPEC5" = "00 00366",
"SPEC6" = "00 00399")
答案 0 :(得分:0)
您可以使用服务器功能中的observeEvent
完成切换
observeEvent({
input$base
},
{
if(input$base == "base-1"){
updateSelectInput(
inputId = "cible",
choices = fooChoices1,
selected = "ALL"
)
} else {
updateSelectInput(
inputId = "cible",
choices = fooChoices2,
selected = "ALL"
)
}
})
关于你的第二个问题:如果我理解你的话,实际上没有必要阻止文本输入 - 当你有很多选项时,这只是一个搜索工具 - 用户仍然只限于参数中定义的选项选择。
答案 1 :(得分:0)
我尝试使用observeEvent,但它没有工作,Shiny退出
我发现了这个:
output$cible <- renderUI({
if(input$base == "base-1")
selectInput("cible", "Select test:",
choices = fooChoices1)
else
selectInput("cible", "Select test:",
choices = fooChoices2)
})
在UI.R中
uiOutput("cible"),