Как передать несколько значений из URL в поле ввода блестящего флажка - PullRequest
0 голосов
/ 19 января 2020

Пожалуйста, посмотрите пример кода ниже, я просто хочу передать несколько chk значений из url в виде блестящих флажков для ввода значений; он работает для одного значения, например: http://127.0.0.1: 3471 /? chk = 1 , но не работает для нескольких значений, таких как http://127.0.0.1: 3471 / ? CHK = 1,2 . Заранее спасибо.

    library(shiny)

    shinyApp(
    ui = shinyUI(fluidPage(    
    checkboxGroupInput("chk", "Check box", c("Monthly" = 1,
                                           "Quarterly" = 2,
                                           "Weekly" = 3,
                                           "Daily" = 4))

    )),

      server = shinyServer(function(input, output,session) {
      observe({
      query <- parseQueryString(session$clientData$url_search)

      if (!is.null(query[['chk']])) {
        print(query[['chk']])
        updateTextInput(session, "chk", value = query[['chk']])
      }
     })
    })
    )

1 Ответ

1 голос
/ 19 января 2020

Я полагаю, что вы можете использовать updateCheckboxGroupInput для обновления своих флажков вместо updateTextInput.

Извлеченная query[['chk']] будет строкой, разделенной запятой, содержащей элементы, для которых вы будете sh обновить в ваших флажках. Вы можете использовать strsplit для их разделения (и unlist, поскольку результатом будет список).

server = shinyServer(function(input, output,session) {
  observe({
    query <- parseQueryString(session$clientData$url_search)
    if (!is.null(query[['chk']])) {
      print(query[['chk']])
      updateCheckboxGroupInput(session, "chk", selected = unlist(strsplit(query[['chk']], ",")))
    }
  })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...