我需要帮助根据用户的选择构建动态用户界面。 我有R服务器脚本读取的制表符分隔文件,此文件包含5列数据(Job_Types,Job_Order,Task_Number,Activity_Number,Activity_Type) 以下是数据表的外观 已完成JO_1 JO_1_TN_1 JO_1_TN_1_AN_1绘图 已完成JO_1 JO_1_TN_2 JO_1_TN_2_AN_1绘图 完成JO_1 JO_1_TN_3 JO_1_TN_3_AN_2切割 已完成JO_1 JO_1_TN_4 JO_1_TN_4_AN_1绘图 当前JO_2 JO_2_TN_1 JO_2_TN_1_AN_1绘图 当前JO_2 JO_2_TN_2 JO_2_TN_2_AN_2切割 当前JO_3 JO_3_TN_1 JO_3_TN_1_AN_3绘画
以下是我目前面临的挑战: 为用户提供了一个界面(下拉菜单)来选择Job_Types,基于用户选择的Job_Types,Job_Order下拉菜单被填充,现在我想填充下一个下拉菜单,选择Task_Number基于用户做出的Job_Order选择,在类似的行上,我希望根据用户做出的Task_Number选择为用户提供Activity_Number选择。 例如:假设用户选择"当前" (Job_Types)来自第一个下拉菜单。 第二个下拉菜单应该只选择JO_2和JO_3作为选项;现在让我们说用户选择" JO_2和JO_3" 第三个下拉菜单应该只有JO_2_TN_1,JO_2_TN_2,JO_3_TN_1任务编号列出供选择,比如用户选择" JO_2_TN_1,JO_3_TN_1" 第四个下拉菜单应该只有JO_3_TN_1_AN_3作为选项
这是我的代码 shinyServer(函数(输入,输出){
data1 <- data.frame(read.table("Data.txt", sep="\t", header=TRUE))
# reactiveValues(current_col = 0)
output$mytext <- renderText({
result <- input$var
})
输出$ choose_Job_Types&lt; - renderUI({
if(&#34; SelectJobType&#34;%in%input $ var)
{
com&lt; - paste(&#34;&#34;)
selectInput(&#34; JobOrder&#34;,&#34;选择作业顺序&#34;,com)
}
否则if(&#34;当前&#34;%in%input $ var)
{
sub_data&lt; - subset(data1,data1 [,1]%in%&#34; Current&#34 ;, select = c(&#34; Job_Order&#34;))
selectInput(&#34; JobOrder&#34;,&#34;选择作业顺序&#34;,sub_data [,1],multiple = TRUE)
}
else
{
sub_data <- subset(data1, data1[,1] %in% "Completed", select=c("Job_Order"))
selectInput("JobOrder", "Select Job Order", sub_data[,1], multiple=TRUE)
}
})
output$choose_Job_Order <- renderUI({
sub_data2 <- subset(data1, data1[,2] %in% output$JobOrder, select=c("Task_Number"))
selectInput("TaskNumber", "Select Task Number", sub_data2[,2], multiple=TRUE)
})
}
)
shinyUI(pageWithSidebar( headerPanel(强(&#34;工作流可视化模型&#34;,样式=&#34;颜色:黑&#34;),windowTitle =&#34; WorkFlow&#34;),
sidebarPanel(
标记$头(
标签$ style(type =&#39; text / css&#39;,&#34; input {width:100px;}&#34;),#control numericInput box,
标签$ style(type =&#39; text / css&#39;,&#34; select,textarea,.jslider,.well {background-color:#F0F0F0;}&#34;)
),
selectInput("var",
label = (strong("Choose Job Types", style="color:black")),
choices = c("SelectJobType","Current","Completed"),
selected = "SelectJobType"),
uiOutput("choose_Job_Types"),
uiOutput("choose_Job_Order"),
br()
),
mainPanel(
tabsetPanel(
tabPanel("Introduction", (h1("Current Status Overview Of Jobs in Pipeline")),
textOutput("mytext"),
plotOutput("graph_report")
),
tabPanel("TablularView", (h1("Tabular View of Selected Job Orders")), tableOutput("DataTable"))
)
)
))