shinyServer(function(input, output, session) {
observe({
# We'll use the input$controller variable multiple times, so save it as x
# for convenience.
x <- input$controller
# Create a list of new options, where the name of the items is something
# like 'option label x 1', and the values are 'option-x-1'.
s_options <- list()
s_options[[sprintf("option label %d 1", x)]] <- sprintf("option-%d-1", x)
s_options[[sprintf("option label %d 2", x)]] <- sprintf("option-%d-2", x)
# Change values for input$inSelect
updateSelectInput(session, "inSelect", choices = s_options)
# Can also set the label and select an item (or more than one if it's a
# multi-select)
updateSelectInput(session, "inSelect2",
label = paste("Select label", x),
choices = s_options,
selected = sprintf("option-%d-2", x)
)
})
})
Run the code above in your browser using DataLab