我试图在按钮的提交事件中将一些数据发布到闪亮的服务器上。我已经完成了输入绑定,但我无法接收服务器上的数据我的html和服务器代码。
<html>
<script>
var submit_binding = new Shiny.InputBinding();
$.extend(submit_binding, {
find: function(scope) {
return $(scope).find("#submit");
},
getValue: function(el) {
// Get the row and cell number of the selected td.
//var month
//var year
var result = ['2', '2013'];
return result;
},
subscribe: function(el, callback) {
$(el).on("click.submit_binding", function(e) {
callback();
});
},
unsubscribe: function(el) {
$(el).off(".submit_binding");
}
});
Shiny.inputBindings.register(submit_binding);
</script>
<body>
<div>
<select id="mn" name="mn">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select id="yr" name="yr">
<option value="2012">2012</option>
<option value="2013">2013</option>
</select>
<button id="submit">Run</button>
</div>
<div>
<div id="mean" class="d3-plot-output"></div>
</div>
</body>
</html>
我的服务器代码:
shinyServer(function(input, output) {
month <- reactive({
switch(input$mn, '1'=1, '2'=2,1)
})
year <- reactive({
switch(input$yr, '2012'=2012, '2013'=2013,2012)
})
testwrite <- function(){
a = c[1,2,3]
write.csv(a, file="test_binding.csv");
return (a)
}
output$mean <- reactive(
testwrite()
)
})
我无法弄清楚我在这里失踪了什么。
答案 0 :(得分:1)
我更改了我的服务器代码,以使其正常工作
shinyServer(function(input, output, session) {
values <- reactiveValues();
values$lastAction <- NULL;
observe({
values$lastAction <- input$submit;
})
testwrite <- function(){
a = c[1,2,3]
write.csv(a, file="test_binding.csv");
return (a)
}
output$mean <- function(){
if(!is.null(values$lastAction)){
testwrite()
}
}
})