gpt4 book ai didi

html - R Shiny : how to give an inputID to an actionButton created via HTML

转载 作者:搜寻专家 更新时间:2023-10-31 08:06:00 25 4
gpt4 key购买 nike

如果我创建一个 .htlm 文件来定义一个 actionButton,我怎样才能给按钮一个 inputID(以便根据它的值做其他事情)?

正如您将在 .html 中看到的,我尝试给它一个“id”,但它不起作用。而且我认为实际提供 inputID 应该在 ui.R 文件中完成。

这是我的 UI、服务器和 .htlm 文件:

1/用户界面:

library(shiny)
shinyUI(pageWithSidebar(
headerPanel("test"),

sidebarPanel(),

mainPanel(
includeHTML("static.html"),
uiOutput("x")
)
))

2/服务器:

shinyServer(function(input,output){
output$x<-renderUI(h4(input$button1))
})

3/static.html

<p> <button class="btn btn-large btn-primary" type="button" id="button1"><i class="icon-star"></i>Large button</button>

</p>

如有任何建议,我们将不胜感激。

干杯

最佳答案

我认为问题在于您的 html 正在创建一个普通的“按钮”,而不是一个 Shiny 的“操作按钮”。如果您的目标是创建一个带有自定义类的操作按钮,您可以使用:

tags$button(id="button1", 
type="button",
class="btn action-button btn-large btn-primary",
HTML('<i class="icon-star"></i>Large button'))

这相当于调用 actionButton(...)但允许您设置 class=...明确的属性。

所以这段代码会生成一个页面,其中的操作按钮样式与您的 static.html 中的样式相同文件。

library(shiny)
shinyUI = pageWithSidebar(
headerPanel("test"),
sidebarPanel(HTML(paste('<p>Click Count: ',textOutput("count"),'</p>'))),
mainPanel(
# includeHTML("static.html"),
# uiOutput("x"),
tags$button(id="button1",
type="button",
class="btn action-button btn-large btn-primary",
HTML('<i class="icon-star"></i>Large button'))
)
)
shinyServer = function(input,output){
# output$x <- renderUI(input$button1)
output$count <- renderText(input$button1)
}

runApp(list(
ui = shinyUI,
server = shinyServer
))

如你所见,你可以在shinyServer中引用它使用 input$button1 .我还建议您加载最新版本的软件包 shiny .

编辑(对@JulienNavarre 评论的回应)

事实证明这也有效:

library(shiny)
shinyUI = pageWithSidebar(
headerPanel("test"),
sidebarPanel(HTML(paste('<p>Click Count: ',textOutput("count"),'</p>'))),
mainPanel(
includeHTML("static.html")
)
)
shinyServer = function(input,output){
output$count <- renderText(input$button1)
}

runApp(list(
ui = shinyUI,
server = shinyServer
))

如果您更改 static.html如下:

<button class="btn action-button btn-large btn-primary" type="button" id="button1">
<i class="icon-star"></i>
Large button
</button>

换句话说,你必须包括action-button在类列表中,删除 <p></p>标签。

关于html - R Shiny : how to give an inputID to an actionButton created via HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22116304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com