Отслеживание ввода блестящего флажка

В настоящее время я работаю над формой заявки, используя Shiny. Моя главная страница будет состоять из таблицы, на которой будет кнопка щелчка, которая откроет новое модальное окно, в котором будут отображаться детали формы заявки. После нажатия кнопки «Сохранить» данные будут сохранены в моей БД в бэкэнде. Я привел пример своего приложения с использованием mtcars.

Мой вопрос состоит из двух частей.

  1. Я добавил флажок в строки главной страницы и хочу отслеживать щелчок этих флажков, чтобы я мог отметить нужные и, используя их событие щелчка, сохранить какое-то другое значение в БД. Как я могу отслеживать это событие щелчка флажка?

  2. Мне нужен один щелчок по флажку, чтобы выбрать около 150 или более флажков одновременно. Есть ли способ зафиксировать все эти события кликов вместе в массиве или что-то в этом роде и использовать их позже?

Вот мой код:

rm(list = ls())
library(DT)
library(shiny)
library(shinyBS)
library(shinyjs)
library(shinydashboard)

shinyInput <- function(FUN, len, id, ...) {inputs <- character(len)
for (i in seq_len(len)) {
  inputs[i] <- as.character(FUN(paste0(id, i), ...))}
inputs
}

ui <- dashboardPage(
  dashboardHeader(title = "Simple App"),
  dashboardSidebar(
    sidebarMenu(id = "tabs",
                menuItem("Menu Item 1", tabName = "one", icon = icon("dashboard"))
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName = "one",h2("Datatable Modal Popup"),
              DT::dataTableOutput('my_table'),uiOutput("popup")
      )
    )
  )
)

server <- function(input, output, session) {
  my_data <- reactive({
    testdata <- mtcars
    as.data.frame(cbind(View = shinyInput(actionButton, nrow(testdata),'button_', label = "View", onclick = 'Shiny.onInputChange(\"select_button\",  this.id)' ),
                        Check = shinyInput(checkboxInput,label = "Check", nrow(testdata),  'box_', value = FALSE),testdata))
  })  
  output$my_table <- DT::renderDataTable(my_data(),selection = 'single',options = list(searching = FALSE,pageLength = 10),server = FALSE, escape = FALSE,rownames= FALSE)

  SelectedRow <- eventReactive(input$select_button,{
    as.numeric(strsplit(input$select_button, "_")[[1]][2])
  })

  observeEvent(input$select_button, {
    toggleModal(session, "modalExample", "open")
  })

  DataRow <- eventReactive(input$select_button,{
    my_data()[SelectedRow(),2:ncol(my_data())]
  })

  output$popup <- renderUI({
    bsModal("modalExample", paste0("Data for Row Number: ",SelectedRow()), "", size = "large",
            column(12,                   
                   DT::renderDataTable(DataRow())

            )
    )
  })

}

shinyApp(ui, server)

person Sanjay Jayaraman    schedule 02.11.2016    source источник
comment
Что вы уже пробовали? Вы пытались найти в Google пример использования блестящего флажка?   -  person TheComeOnMan    schedule 02.11.2016
comment
Я пытался, и мне удалось воспроизвести пример отсюда для флажка. stackoverflow.com/questions/37886104/ Это работает для флажка, и я могу отслеживать истинное/ложное значение флажка. Пытаюсь понять, как настроить его под свои нужды. У меня нет никакого представления о второй части. В сети примеров не нашел.   -  person Sanjay Jayaraman    schedule 02.11.2016
comment
Но приведенная выше ссылка не помогает. Я могу увидеть событие щелчка, только если я упомяну номер строки для этого конкретного флажка. Моя цель - получить номер строки флажка из самого события щелчка. Поэтому я все еще пытаюсь найти решение для части 1.   -  person Sanjay Jayaraman    schedule 02.11.2016
comment
Вы можете взглянуть на эту ссылку для решения первой части. Надеюсь, поможет!   -  person SBista    schedule 07.11.2016