shinyR - 通过文本动态引用输入字段值

Posted

技术标签:

【中文标题】shinyR - 通过文本动态引用输入字段值【英文标题】:shinyR - Dynamically Reference Input Field Value via Text 【发布时间】:2021-04-22 08:32:57 【问题描述】:

我已经构建了一个包含许多输入字段的输入表单。

我想通过使用 for 循环语句来引用这些字段中的每一个,将标签动态生成为文本,并让闪亮将其视为标签名称(而不是对每个字段输入数百次调用)。

我可以构建一个循环语句,但问题是我不知道如何显式引用闪亮的输入字段 - 当然不输入 input$fieldname。

有没有一种方法可以显式地将文本“input$fieldname”转换为引用闪亮输入字段的值?

【问题讨论】:

【参考方案1】:

您可以像这样动态引用输入:

input[['mytextbox']]

所以如果你有字符串“input$mytextbox”,你可以像这样得到它的值:

mystring <- "input$mytextbox" 
input[[substring(mystring, 7)]]

这是一个最小的工作示例

library(shiny)

mystring <- "input$mytextbox" 

ui <- fluidPage(
  
    textInput('mytextbox', 'My Text Box', value = 'Hello World'),
    actionButton('mybutton', 'Dynamically Get Value')
    
)

server <- function(input, output, session) 
    
    observeEvent(input$mybutton, 

        showNotification(
            
            input[[substring(mystring, 7)]]
            
        )
 
    )
  


shinyApp(ui, server)

【讨论】:

非常感谢!我下来的兔子洞的数量......最后一个问题......为什么我们在子字符串中使用7的参数? 我们使用 7,因为我们希望从字符串 input$mytextbox" 的第 7 个字符开始,即我们只需要 'mytextbox' 位,而不是 'input$' 位。 还有一个问题 Ash.... 是否有一种特殊的方法来引用具有多个级别的输入对象?例如。 input$fileUpload$name - 我目前正在努力解决这个问题...... 找到了我的答案——末尾多了一对双方括号:input[[substring(mystring,7)]][[1]]

以上是关于shinyR - 通过文本动态引用输入字段值的主要内容,如果未能解决你的问题,请参考以下文章

通过闪亮的按钮动态添加/删除输入字段并保留值

solr 通过配置多值字段动态字段来解决文本表达式查询精确到句子的问题

solr 通过配置多值字段动态字段来解决文本表达式查询精确到句子的问题20171214

使用 PHP 从动态输入字段中捕获数组值并通过电子邮件发送它们

使用 jQuery 动态填写表单值

根据在单元格中的文本字段中输入的值动态增加表格视图单元格