Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当应用程序基于URL加载时,预填充闪亮的输入,其中数据为&&引用;性格_R_Url_Shiny_Shinyapps - Fatal编程技术网

当应用程序基于URL加载时,预填充闪亮的输入,其中数据为&&引用;性格

当应用程序基于URL加载时,预填充闪亮的输入,其中数据为&&引用;性格,r,url,shiny,shinyapps,R,Url,Shiny,Shinyapps,当应用程序基于URL参数加载时,我需要预先填充闪亮的输入。以下链接中的代码工作正常: 但是,我的数据在每个数据中都有“&”字符。此代码还在URL中的每个输入之间使用“&”字符。如何处理这一冲突 示例输入:名称和姓氏。 作为一个解决方案,您可以考虑改写 PARSCORDESTRAGE()/函数以满足您的需要。例如,将url中值的分隔符从&更改为& parseQueryString <- function (str, nested = FALSE, seperator = "&&am

当应用程序基于URL参数加载时,我需要预先填充闪亮的输入。以下链接中的代码工作正常:

但是,我的数据在每个数据中都有“&”字符。此代码还在URL中的每个输入之间使用“&”字符。如何处理这一冲突


示例输入:名称和姓氏。

作为一个解决方案,您可以考虑改写<代码> PARSCORDESTRAGE()/<代码>函数以满足您的需要。例如,将url中值的分隔符从

&
更改为
&

parseQueryString <- function (str, nested = FALSE, seperator = "&&") 
{
  if (is.null(str) || nchar(str) == 0) 
    return(list())
  if (substr(str, 1, 1) == "?") 
    str <- substr(str, 2, nchar(str))
  pairs <- strsplit(str, seperator, fixed = TRUE)[[1]]
  pairs <- pairs[pairs != ""]
  pairs <- strsplit(pairs, "=", fixed = TRUE)
  keys <- vapply(pairs, function(x) x[1], FUN.VALUE = character(1))
  values <- vapply(pairs, function(x) x[2], FUN.VALUE = character(1))
  values[is.na(values)] <- ""
  keys <- gsub("+", " ", keys, fixed = TRUE)
  values <- gsub("+", " ", values, fixed = TRUE)
  keys <- URLdecode(keys)
  values <- URLdecode(values)
  res <- stats::setNames(as.list(values), keys)
  if (!nested) 
    return(res)
  for (i in grep("\\[.+\\]", keys)) {
    k <- strsplit(keys[i], "[][]")[[1L]]
    res <- assignNestedList(res, k[k != ""], values[i])
    res[[keys[i]]] <- NULL
  }
  res
}

parseQueryString另外,我的每个数据看起来都是这样的:NAME&NAME很高兴它能工作!请投赞成票:)
library(shiny)

ui <- fluidPage(
  textInput("name", "Name"),
  numericInput("age", "Age", 25)
)

server <- function(input, output, session) {
  observe({
      query <- parseQueryString(session$clientData$url_search)
    print(query)
    if (!is.null(query[['name']])) {
      updateTextInput(session, "name", value = query[['name']])
    }
    if (!is.null(query[['age']])) {
      updateNumericInput(session, "age", value = query[['age']])
    }
  })
}

shinyApp(ui, server)