Получение значений в выбранной функции ввода, значения присутствуют в базе данных - PullRequest
0 голосов
/ 10 мая 2019

Я получил значение из своей базы данных в функции выбора ввода.Но когда я создаю сценарий и ввожу его имя (значение, которое я извлекаю из базы данных), он добавляется в мою таблицу, но не отражается в доступных сценариях, как показано в моем коде. Когда я снова запускаю свое приложение, оно отражается в доступныхСценарии, но я хочу, чтобы это было доступно для выбора ввода без повторного запуска приложения. Вот мой код.

library("shiny")
library("shinydashboard")
library("pool")
library(DBI)
pool <- dbPool(drv = RMySQL::MySQL(),dbname = "demo",host =     "db.cr7lk1jwjdht.us-east-2.rds.amazonaws.com",username = "kartik",password =     "12345678", port = 3306)

   mychoices = dbGetQuery(pool,"select availbale_scenario  from sc;")
   #mychoices = as.character(mychoices)
    ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(

  actionButton("create_scenario", "Create Scenario"),
  actionButton("load_scenario","load scenario"),
  selectInput('n', "available scenarios", choices = mychoices, multiple =    TRUE),
     verbatimTextOutput("selected")

    ),
   mainPanel(
      uiOutput('tabs'),
     uiOutput("input"),
     uiOutput("inputs"),
     uiOutput("inputss")
    )
    )
    )

server <- function(input, output,session) {

  observeEvent(input$create_scenario,{
    output$input <- renderUI({
      mainPanel(     
       textInput("txtInput","Enter scenario name"),
       textOutput("sname"),
      actionButton("save","save_scenario")
    )
   })
   output$sname <- renderText({
     input$txtInput
   })
    observeEvent(input$save,{
     dd <- data.frame(x = input$txtInput,row.names = FALSE)
  #   print(dd)
     dbWriteTable(pool,"available_scenario",dd,append = TRUE)
   })

 })
  output$tabs = renderUI({
   if(!is.null(input$n)){
      Tabs <- lapply(paste("tab name:", input$n, sep=" "), tabPanel)
     do.call(tabsetPanel, Tabs)}

 })

 observeEvent(input$load_scenario,{

   output$inputs <- renderUI({
     dashboardPage(
      dashboardHeader(title = "Basic dashboard"),
    dashboardSidebar(),
      dashboardBody(
      # Boxes need to be put in a row (or column)
      fluidRow(
        box(plotOutput("plot1", height = 250)),

        box(
          title = "Controls",
          sliderInput("slider", "Number of observations:", 1, 100, 50)
        ))))
   } )
   histdata <- rnorm(500)
   output$plot1 <- renderPlot({
    data <- histdata[seq_len(input$slider)]
     hist(data)
    })
 })
}
  shinyApp(ui, server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...