R 更新下拉列表
我正在从数据库中提取一个列表,并尝试根据搜索结果更新该列表。我已经在这里提到了一些答案,但我还不能让它正常工作。这是我的密码: ui.RR 更新下拉列表,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
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):参数长度为零我自己能够让它工作,但感谢您的帮助。