首页 > 解决方案 > 每次用户单击按钮时发送查询

问题描述

我正在制作一个应用程序,其中用户有一个 textInput 字段,写一些文本,然后单击提交。在后台,应用程序应该将这个向量转换为一个大小向量,其中 n 是用户提供的单词数。然后我的算法应该将这些词应用到查询中,然后从数据库中下载数据。

ui <- fluidPage(
  textInput("key", label = "Key words", value = "price"),
  actionButton("submit","Submit"),
  submitButton("Update", icon("refresh")),
  DT::dataTableOutput("mytable")
)

server<-function(input, output){
      keywords<-strsplit("key", " ")[[1]]
      query1<-"SELECT * FROM \"domain\" WHERE x < 5"
      query3<-query2(keywords)
      query<-paste(query1,query3)
      query_data <- dbGetQuery(con, query)
      output$mytable = DT::renderDataTable({
       query_data
  })
}

con 设置正确。如果我使用自定义关键字运行 query_data,它的工作原理是用户提供的名称存在问题。My_table 应该打印查询的结果。

标签: rshiny

解决方案


我认为你必须这样做:

server <- function(input, output){
  query_data <- eventReactive(input$submit, {
    keywords <- strsplit(input$key, " ")[[1]]
    query1 <- "SELECT * FROM \"domain\" WHERE x < 5"
    query3 <- query2(keywords)
    query <- paste(query1,query3)
    dbGetQuery(con, query)
  })

  output$mytable = DT::renderDataTable({
    query_data()
  })
}

推荐阅读