2014-04-09 87 views
0

我将下面的file.R作为我的server.R的来源。在这里,我尝试选择一些名称并在提交后提交,我想显示'谢谢您提交'消息和一些gvisTable。我的actionButton似乎无法正常工作。对不起,我无法提供整个代码和样本数据,因为这是如此之大。`actionButton` action in Shiny R

Nomination <- function(){ 
     { 
     fluidRow(column(3, 
         h4(tags$div(paste0('Nominations'), style='color:blue'), 
          h4(tags$div(textOutput('alert3'), style='color:green')), 
          h4(tags$div(textOutput('alert2'), style='color:red')), 
          selectInput(inputId = "person",label = "Select a Person:", choices = sDF$Name, selected = NULL, multiple=TRUE, selectize=TRUE), 
          br(),br(), 
          uiOutput('nomiButton'), 
          htmlOutput('tableNomi'), 
          tableOutput("values") 
         ))) 
     } 

     if(input$nominate) 
     { 
     fluidRow(column(3, 
         h4(tags$div(paste0('Nominations'), style='color:blue'), 
          h4(tags$div(textOutput('alert1'), style='color:red')), 
          htmlOutput('tableNomi') 
         ))) 

     } 

} 


output$nomiButton = renderUI({ 
    if(length(input$person)>users_list$Number) 
     return(NULL) 
    return(actionButton('nominate', 'Nominate')) 
}) 


output$alert1 = renderText({ 
    return(paste0('Thank you for the Submission')) 
}) 

output$alert2 = renderText({ 
    totNomi = users_list$Number 
    selNomi = length(input$person) 
    if(selNomi>totNomi) paste0('Please do not select more than ',totNomi) 
}) 

output$alert3 = renderText({ 
    totNomi = users_list$Number 
    selNomi = length(input$person) 
    if(selNomi<totNomi) paste0('Please select ',totNomi - selNomi, ' Nomination(s)') 
}) 

output$tableNomi = renderGvis({ 
    nominations = sDF[sDF$Name %in% input$person,] 
    nominations = unique(nominations, by='Name') 
    write.table(nominations,file='collect_data/nominations.csv', append=T, sep=',', col.names=F, row.names=F, eol='\r') 
    gvisTable(nominations, options=list(height=1500, width=800)) 
}) 

回答

0

我已经改变,如下所述逻辑工作

Nomination <- function(){ 

     if(input$nominate==2 && !is.null(input$nominate)) 
     { 
     fluidRow(column(3, 
         h4(tags$div(paste0('Nominations'), style='color:blue'), 
          h4(tags$div(textOutput('alert1'), style='color:red')), 
          htmlOutput('tableNomi') 
         ))) 

     } 
    else { 
     fluidRow(column(3, 
         h4(tags$div(paste0('Nominations'), style='color:blue'), 
          h4(tags$div(textOutput('alert3'), style='color:green')), 
          h4(tags$div(textOutput('alert2'), style='color:red')), 
          selectInput(inputId = "person",label = "Select a Person:", choices = sDF$Name, selected = NULL, multiple=TRUE, selectize=TRUE), 
          br(),br(), 
          uiOutput('nomiButton'), 
          htmlOutput('tableNomi'), 
          tableOutput("values") 
         ))) 
     } 



} 

output$nomiButton = renderUI({ 
    if(length(input$se)>users_list$Number) 
     return(NULL) 
    return(shinysky::actionButton('nominate', 'Nominate', styleclass='info', icon='check')) 
})