從客戶端向伺服器傳送資料
在某些情況下,你需要將資料從 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*
。