r - Capture the label of an actionButton once it is clicked -


is possible capture label of actionbutton once clicked?

imagine have 3 buttons on ui.r , depending on 1 click want perform different action on server.r.

one caveat buttons created dynamically on server.r dynamic labels (thus necessity of capturing label on click)

thanks

1) button clicked last user?

to answer can user observeevent function , setting a variable using reactivevalues function. make sure update libraries , work in latest version of r (version 3.1.3) shiny dependant on version. working on windows can follow example on how update here

rm(list = ls()) library(shiny)  ui =fluidpage(   sidebarpanel(     textinput("sample1", "name1", value = "a"),     textinput("sample2", "name2", value = "b"),     textinput("sample3", "name3", value = "c"),     div(style="display:inline-block",uioutput("my_button1")),     div(style="display:inline-block",uioutput("my_button2")),     div(style="display:inline-block",uioutput("my_button3"))),   mainpanel(textoutput("text1")) )  server = function(input, output, session){    output$my_button1 <- renderui({actionbutton("action1", label = input$sample1)})   output$my_button2 <- renderui({actionbutton("action2", label = input$sample2)})   output$my_button3 <- renderui({actionbutton("action3", label = input$sample3)})    my_clicks <- reactivevalues(data = null)    observeevent(input$action1, {     my_clicks$data <- input$sample1   })    observeevent(input$action2, {     my_clicks$data <- input$sample2   })      observeevent(input$action3, {     my_clicks$data <- input$sample3   })      output$text1 <- rendertext({      if (is.null(my_clicks$data)) return()     my_clicks$data   }) } runapp(list(ui = ui, server = server)) 

2) save clicks further manipulation below

here's small example based on work of jdharrison shiny ui: save changes in inputs , shinystorage package.

rm(list = ls()) #devtools::install_github("johndharrison/shinystorage") library(shinystorage) library(shiny)  my_clicks <- null  ui =fluidpage(   #   addss(),   sidebarpanel(     textinput("sample_text", "test", value = "0"),     uioutput("my_button")),   mainpanel(uioutput("text1")) )  server = function(input, output, session){   ss <- shinystore(session = session)    output$my_button <- renderui({     actionbutton("action", label = input$sample_text)   })    observe({     if(!is.null(input$sample_text)){       if(input$sample_text != ""){         ss$set("myvar", input$sample_text)       }     }   })      output$text1 <- renderui({     input$action     myvar <- ss$get("myvar")     if(is.null(myvar)){       textinput("text1", "you button name")     }else{       textinput("text1", "you button name", myvar)               }   }) } runapp(list(ui = ui, server = server)) 

Comments

Popular posts from this blog

How to group boxplot outliers in gnuplot -

cakephp - simple blog with croogo -

bash - Performing variable substitution in a string -