使用闪亮的 Flexdashboard 时如何获得 editable DT table?
How to have an editable DT table when using Flexdashboard with shiny?
我不知道这是否是最好的方法,但非常感谢任何指导。我有一个 table,我将在我的一个 flexdashboard 中显示应用程序。 table 显示 ID、接收日期和空白状态。
我希望用户在看到应用程序后进入那里并输入状态,并将该状态保存在 table 中。我可以使用 editable=TRUE 执行此操作,但是当我重新加载闪亮的应用程序时它不会保存。
最好的方法是什么?
Code
---
title: "CARS TABLE "
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)
library(DT)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
data <- data.frame(id = c(12456,12457,12458,12459,12569,23456),
date_recived = c("10/25/2021", "10/05/2021","11/25/2021","11/25/2021","11/25/2021","10/22/2021"),
status = c("","","","","",""))
datatable(data
,
editable = TRUE,
options = list(
columnDefs = list(list(className = 'dt-center', targets = "_all")))
)
```
为了保存用户输入,您将需要一个服务器端进程来与数据库系统交互(读取和写入)或写入系统上的文件.
事情是,{flexdashboard}
根据定义是一个 HTML 文件 没有 服务器端进程,所以就你的例子而言,没有使用 {flexdashboard}
.
执行此操作的本机方法
您的解决方案是:
- 变成
{shiny}
应用程序。
- 创建一个 REST API(例如,使用
{plumber}
或直接在 NodeJS 中),然后从您的 HTML 文件中调用 JavaScript。例如 https://api.jquery.com/jquery.post/.
我不知道这是否是最好的方法,但非常感谢任何指导。我有一个 table,我将在我的一个 flexdashboard 中显示应用程序。 table 显示 ID、接收日期和空白状态。
我希望用户在看到应用程序后进入那里并输入状态,并将该状态保存在 table 中。我可以使用 editable=TRUE 执行此操作,但是当我重新加载闪亮的应用程序时它不会保存。
最好的方法是什么?
Code
---
title: "CARS TABLE "
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shiny)
library(DT)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
data <- data.frame(id = c(12456,12457,12458,12459,12569,23456),
date_recived = c("10/25/2021", "10/05/2021","11/25/2021","11/25/2021","11/25/2021","10/22/2021"),
status = c("","","","","",""))
datatable(data
,
editable = TRUE,
options = list(
columnDefs = list(list(className = 'dt-center', targets = "_all")))
)
```
为了保存用户输入,您将需要一个服务器端进程来与数据库系统交互(读取和写入)或写入系统上的文件.
事情是,{flexdashboard}
根据定义是一个 HTML 文件 没有 服务器端进程,所以就你的例子而言,没有使用 {flexdashboard}
.
您的解决方案是:
- 变成
{shiny}
应用程序。 - 创建一个 REST API(例如,使用
{plumber}
或直接在 NodeJS 中),然后从您的 HTML 文件中调用 JavaScript。例如 https://api.jquery.com/jquery.post/.