动态更改下一个输入的数据

时间:2015-01-15 16:51:48

标签: r shiny

我的两个选择输入 UI.R     库(有光泽)

ContextElements = c("choice1", "choice2", "choice3")
shinyUI(pageWithSidebar(

headerPanel(""),

sidebarPanel(
  h4("test for selectize input"),

 selectizeInput(inputId = "firstAxe", label = h4("First Axe"),  
               choices=ContextElements, selected = NULL, multiple = FALSE,
               options = NULL),
 hr(),

 selectizeInput(inputId = "twoAxe", label = h4("Second Axe"),  
               choices=NULL, selected = NULL, multiple = FALSE,
               options = NULL)
),
mainPanel(
  )
))

我希望下一个选择输入选择(" twoAxe")能够动态填充第一个选择的剩余选择,这意味着如果第一个选择了第一个选择,第二个选择是choice2和choice3

由于

1 个答案:

答案 0 :(得分:0)

您可以使用server.rupdateSelectizeInput中执行此操作。让我们假设服务器可以使用ContextElements - 可以在global.r中定义,也可以在server.rui.r中定义。然后这应该工作:

observe({

    input$firstAxe   # makes the second selectize change when the first one does

    updateSelectizeInput({session, inputId="twoAxe",
         choices=as.list( ContextElements[!ContextElements %in% input$firstAxe] )  })
})

当您在firstAxe中更改选择时,您应该会看到twoAxe中的选择做出回应。