2014-11-21 6 views
7

Reaktif bir sarıcıda bir renderUI öğesinden elde edilen değerleri nasıl kullanırsınız?R-Shiny Reaktif render renderUI değeri

yani Kodum:

CompanyNames <- sqlQuery(connection, "SELECT Companynm FROM RiskMgm_Company") 

output$CompNameSelector <- renderUI({ 
selectInput("compName","Company Name:",as.vector(CompanyNames[,1])) 
}) 

CompID <- reactive({ 
CompID <<- sqlQuery(paste("SELECT CompanyID FROM RiskMgm_Company WHERE Companynm = '",compName,"'")) 
}) 

output$MotorSelector <- renderUI({ 
selectInput("MachSer","Machine:",sqlQuery(connection,paste("SELECT Motor_func FROM RiskMgm_Motor WHERE Company_ID='",CompID,"'"))) 
}) 

Benim hatası: Yanlış yapıyorum

Successfilly opened connection to db 
Error in paste("SELECT CompanyID FROM RiskMgm_Company WHERE Companynm = '", : 
could not find function "compName" 

? Esasen istediğim, SQL sorgusu tarafından verilen şirketlerin listesi. Sonra Şirket bağlı olarak bir sonraki açılan kutuya o şirkete

Teşekkür

cevap

7

Örneğin input$compName kendi kimliği ile parçalara atıfta olurdu ait motorları gösterecektir seçilmiş. Buradaki bir örnek olarak, , iki selectInput ile basit ve parlak bir uygulamadır. İkinci selectInput seçimleri, ilkinin değerine bağlıdır. renderUI yarattığı widget çıkışını başvurulması onlar baştan UI.R içinde olsaydı aynı widget başvuran farksız: hile yaptı

library(shiny) 
myDF <- data.frame(A = 1:4, B = 3:6, C = 6:9, D = 10:13) 
runApp(
    list(
    ui = fluidPage(
     uiOutput("myList"), 
     uiOutput("myNumbers") 
    ) 
    , server = function(input, output, session){ 
     output$myList <- renderUI({ 
     selectInput("compName", "Company Name:", LETTERS[1:4]) 
     }) 

     output$myNumbers <- renderUI({ 
     selectInput("compNo", "Product Line:", myDF[, input$compName]) 
     }) 
    } 
    ) 
) 
+0

, teşekkür ederim! –