9

I am wondering if it is possible to have a conditional panel within another conditional panel.

For example if I have a drop down list with two options: 1 and 2

selecting 1 will display one set of options and selecting 2 will display a different set of options.

But is it possible to have a conditional panel nested within these conditional panel so that I could have another drop down list within the inputs for option 1.

Here is some code for an example of what I am trying to do but this does not work

 selectInput("n", label = h3("Select Option"), 
                choices = list("1" = 1, "2" = 2),
                selected = 1),
  #1
  conditionalPanel(
    condition = "input.n == '1'",
    titlePanel("1 Options"),
    selectInput("b", label = h4("Select Option"), 
                choices = list("A" = 1, "B" = 2),
conditionalPanel(
condition = "input.b == '1'",
    titlePanel("1 Options")
),

conditionalPanel(
condition = "input.b == '2'",
    titlePanel("2 Options")
),

    )),
Cathal O 'Donnell
  • 515
  • 3
  • 10
  • 33
  • Instead of using conditionalpanel, you can also use uiOutput and renderUI to dynamically generate a ui element based on a select input (check `obersevEvent` – Xiongbing Jin Apr 21 '16 at 15:36

1 Answers1

4

Yes, you can easily nest conditional panels, more or less as you were attempting to. In your code you just had a few misplaced parentheses and extra commas. Here is a working app that does what you're asking, I think:

ui <- fluidPage(
  selectInput("n", label = h3("Select Option"), 
        choices = list("1" = 1, "2" = 2),
        selected = 1),
  conditionalPanel(
    condition = "input.n == '1'",
    titlePanel("1 Options"),
    selectInput("b", label = h4("Select Option"), 
          choices = list("A" = 1, "B" = 2)),
    conditionalPanel(
          condition = "input.b == '1'",
          titlePanel("1 Options")
      ),
      conditionalPanel(
          condition = "input.b == '2'",
          titlePanel("2 Options")
      )      
  )
)

server <- function(input, output){}

shinyApp(ui, server)
phalteman
  • 3,442
  • 1
  • 29
  • 46