2013-12-16 4 views
0

Я пытаюсь отправить некоторые данные на блестящий сервер при отправке события кнопки. Я выполнил вводную привязку, но я не могу получить данные на сервере, которые я использую для кода 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

Что именно вы пытаетесь сделать здесь? Я не думаю, что вам нужна привязка для связи между сервером и клиентом. Если вы уточните, что вы пытаетесь сделать, кто-то может помочь. – Ramnath

+0

У меня есть html-страница, где у меня есть кнопки выбора и кнопка отправки. После выбора и нажатия кнопки отправки я отправлю значения поля выбора на сервер. На сервере будут выполняться некоторые функции, и результаты будут отправлены обратно клиенту. Затем клиент будет рисовать некоторые диаграммы с помощью d3js. – user114037

+0

У Shiny уже есть кнопка отправки для этой цели. Это недостаточно для вашей цели? – Ramnath

ответ

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()     
     } 
    } 
}) 
Смежные вопросы