R 更新下拉列表

R 更新下拉列表,r,drop-down-menu,shiny,R,Drop Down Menu,Shiny,我正在从数据库中提取一个列表,并尝试根据搜索结果更新该列表。我已经在这里提到了一些答案,但我还不能让它正常工作。这是我的密码: ui.R library(shiny) library(RODBC) library(plyr) library(magrittr) cxn <- odbcConnect("DSN", uid = "myID", pwd = "myPWD") showList <- sqlQuery(cxn, "my query string", believeNRow

我正在从数据库中提取一个列表,并尝试根据搜索结果更新该列表。我已经在这里提到了一些答案,但我还不能让它正常工作。这是我的密码:

ui.R

library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

cxn <- odbcConnect("DSN", uid = "myID", pwd = "myPWD")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select Show", showList)

    ),

    # Show a plot of the generated distribution
    mainPanel(

    )
  )
))
 library(shiny)

shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observeEvent(input$Search, function() {

    output$searchResults <- renderTable({
      searchResults()  
    })

    updateTextInput(session, "showDrop", "Select Show", searchResults())

  })

})
library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

#cxn <- odbcConnect("DSN", uid = "myName", pwd = "myPwd")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select show", choices = showList),

    ),
  )
))
shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observe({
    updateSelectInput(session, "showDrop", label = "Select show", choices =   searchResults())
  })

})
库(闪亮)
图书馆(RODBC)
图书馆(plyr)
图书馆(magrittr)
cxn%.[1]]>%as.字符(.)
shinyUI(fluidPage)(
#申请名称
标题面板(“选择显示数据”),
#带有滑块输入的边栏,用于输入箱子数量
侧边栏布局(
侧栏面板(
textInput(“名称搜索”、“按显示名称搜索”),
br(),
提交按钮(“搜索”),
br(),
选择输入(“显示下拉”、“选择显示”、显示列表)
),
#显示生成的分布图
主面板(
)
)
))
server.R

library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

cxn <- odbcConnect("DSN", uid = "myID", pwd = "myPWD")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select Show", showList)

    ),

    # Show a plot of the generated distribution
    mainPanel(

    )
  )
))
 library(shiny)

shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observeEvent(input$Search, function() {

    output$searchResults <- renderTable({
      searchResults()  
    })

    updateTextInput(session, "showDrop", "Select Show", searchResults())

  })

})
library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

#cxn <- odbcConnect("DSN", uid = "myName", pwd = "myPwd")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select show", choices = showList),

    ),
  )
))
shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observe({
    updateSelectInput(session, "showDrop", label = "Select show", choices =   searchResults())
  })

})
库(闪亮)
shinyServer(功能(输入、输出、会话){

searchResults我会尝试使用动态用户界面。我不知道这是否可行,因为我无法复制它,但请尝试一下,让我知道会发生什么

用户界面

库(闪亮)
图书馆(RODBC)
图书馆(plyr)
图书馆(magrittr)
cxn%.[1]]>%as.字符(.)
shinyUI(fluidPage)(
#申请名称
标题面板(“选择显示数据”),
#带有滑块输入的边栏,用于输入箱子数量
侧边栏布局(
侧栏面板(
textInput(“名称搜索”、“按显示名称搜索”),
br(),
操作按钮(“搜索”),
br(),
uiOutput(“dynamicDropdown”)
),
#显示生成的分布图
主面板(
)
)
))
服务器.R

library(shiny)

cxn <- odbcConnect("DSN", uid = "myID", pwd = "myPWD")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyServer(function(input, output, session) {

  searchResults <- reactive({
     if(input$Search == 0) return(NULL)

    isolate(showList[grepl(input$nameSearch, showList, ignore.case = TRUE)])
  })

    output$dynamicDropdown <- renderUI({
     if(input$Search == 0) return(NULL)
     isolate(selectInput("showDrop", "Select Show", searchResults()))
    })

})
库(闪亮)
cxn%.[1]]>%as.字符(.)
shinyServer(功能(输入、输出、会话){

searchResults由于RStudio添加了更新选择列表的功能,因此这个问题没有实际意义。我使用的是函数
updateSelectInput
。下面是代码供将来参考:

ui.R

library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

cxn <- odbcConnect("DSN", uid = "myID", pwd = "myPWD")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select Show", showList)

    ),

    # Show a plot of the generated distribution
    mainPanel(

    )
  )
))
 library(shiny)

shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observeEvent(input$Search, function() {

    output$searchResults <- renderTable({
      searchResults()  
    })

    updateTextInput(session, "showDrop", "Select Show", searchResults())

  })

})
library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

#cxn <- odbcConnect("DSN", uid = "myName", pwd = "myPwd")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select show", choices = showList),

    ),
  )
))
shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observe({
    updateSelectInput(session, "showDrop", label = "Select show", choices =   searchResults())
  })

})
库(闪亮)
图书馆(RODBC)
图书馆(plyr)
图书馆(magrittr)
#cxn%.[1]]>%as.字符(.)
shinyUI(fluidPage)(
#申请名称
标题面板(“选择显示数据”),
#带有滑块输入的边栏,用于输入箱子数量
侧边栏布局(
侧栏面板(
textInput(“名称搜索”、“按显示名称搜索”),
br(),
提交按钮(“搜索”),
br(),
选择输入(“显示下拉”、“选择显示”,选项=显示列表),
),
)
))
server.R

library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

cxn <- odbcConnect("DSN", uid = "myID", pwd = "myPWD")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select Show", showList)

    ),

    # Show a plot of the generated distribution
    mainPanel(

    )
  )
))
 library(shiny)

shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observeEvent(input$Search, function() {

    output$searchResults <- renderTable({
      searchResults()  
    })

    updateTextInput(session, "showDrop", "Select Show", searchResults())

  })

})
library(shiny)
library(RODBC)
library(plyr)
library(magrittr)

#cxn <- odbcConnect("DSN", uid = "myName", pwd = "myPwd")

showList <- sqlQuery(cxn, "my query string", believeNRows=FALSE) %>% arrange(., SERIES_NAME) %>% .[ ,1] %>% as.character(.)

shinyUI(fluidPage(

  # Application title
  titlePanel("Select Show Data"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(

      textInput("nameSearch", "Search by show name"),

      br(),

      submitButton("Search"),

      br(),

      selectInput("showDrop", "Select show", choices = showList),

    ),
  )
))
shinyServer(function(input, output, session) {

  searchResults <- reactive({
    showList[grepl(input$nameSearch, showList, ignore.case = TRUE)] 
  })

  observe({
    updateSelectInput(session, "showDrop", label = "Select show", choices =   searchResults())
  })

})
shinyServer(功能(输入、输出、会话){

searchResults似乎不起作用。我得到了“错误:参数长度为零”的下拉框,错误:if中的错误(input$Search==0)return(NULL):参数长度为零我自己能够让它工作,但感谢您的帮助。