在radioButtons上的SelectInput中切换2列表

时间:2017-11-18 13:05:44

标签: r shiny

如何根据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")

2 个答案:

答案 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"),