从客户端向服务器发送数据
在某些情况下,你需要将数据从 JS 客户端发送到 R 服务器。这是使用 javascript 的 Shiny.onInputChange
函数的基本示例:
library(shiny)
runApp(
list(
ui = fluidPage(
# create password input
HTML('<input type="password" id="passwordInput">'),
# use jquery to write function that sends value to
# server when changed
tags$script(
'$("#passwordInput").on("change",function() {
Shiny.onInputChange("myInput",this.value);
})'
),
# show password
verbatimTextOutput("test")
),
server = function(input, output, session) {
# read in then show password
output$test <- renderPrint(
input$myInput
)
}
)
)
在这里,我们创建一个 id 为 passwordInput
的密码输入。我们在 UI 上添加了一个 Javascript 函数,它响应 passwordInput
中的更改,并使用 Shiny.onInputChange
将值发送到服务器。
Shiny.onInputChange
有两个参数,input$*name*
的名称,加上 input$*name*
的值
然后你可以像任何其他 Shiny 输入一样使用 input$*name*
。