إنشاء القائمة المنسدلة في لامعة ص باستخدام العلامات
-
22-12-2019 - |
سؤال
وأنا أعلم باستخدام التعليمات البرمجية التالية يمكنني إنشاء القائمة المنسدلة العادية في لامعة,
selectInput("Input1", "Choose you Input:", choices = c('a1'='1','b2'='2'))
مما سيؤدي إلى إنشاء القائمة المنسدلة التالية
ولكن أنا باستخدام لوحة مشروطة والتي أنا ملء نوع من إسقاط مضمنالقائمةشيء من هذا القبيل
أنا باستخدام التعليمات البرمجية التالية لتوليد هذه القوائم.
conditionalPanel(condition="input.conditionedPanels==3",
div(style="display:inline-block",
tags$label('Menu1', `for` = 'Sample'),
tags$select(id = 'Sample', class="input-small")),
div(style="display:inline-block",
tags$label('Menu2', `for` = 'Sample1'),
tags$select(id = 'Sample1', class="input-small")))
مشكلتي هي لا يمكنني إضافة عناصر إلى هذه القائمة المنسدلة.حاولت القيم أو الخيارات ، ولكن هذا لم يغير شيئا.
آمل أن أكون قد قدمت معلومات كافية ، واسمحوا لي أن أعرف إذا كان هناك حاجة إلى مزيد من المعلومات.
المحلول
يمكنك توفير قائمة من العلامات ل tagList
.العلامات التي تحتاجها هي option
العلامات مع value
سمات يمكنك بناء هذه باستخدام mapply
library(shiny)
runApp(list(
ui = bootstrapPage(
numericInput('n', 'Enter 3 for condition', 3, 0, 10),
conditionalPanel(condition="input.n==3",
div(style="display:inline-block",
tags$label('Menu1', `for` = 'Sample'),
tags$select(id = 'Sample', class="input-small",
tagList(mapply(tags$option, value = 1:10,
paste0(letters[1:10], 1:10),
SIMPLIFY=FALSE)))
),
div(style="display:inline-block",
tags$label('Menu2', `for` = 'Sample1'),
tags$select(id = 'Sample1', class="input-small",
tagList(mapply(tags$option, value = 1:2,
paste0(letters[1:2], 1:2),
SIMPLIFY=FALSE)))
)
)
, textOutput("cond")
),
server = function(input, output) {
output$cond <- renderText({
if(input$n == 3){
paste0("Sample value selected =", input$Sample, " Sample1 value selected =",input$Sample1)
}
})
}
))
بالطبع يمكنك فقط استخدام selectInput
داخل div
على سبيل المثال:
library(shiny)
runApp(list(
ui = bootstrapPage(
numericInput('n', 'Enter 3 for condition', 3, 0, 10),
conditionalPanel(condition="input.n==3",
div(style="display:inline-block",
selectInput("Sample", "Choose you Input:", choices = c('a1'='1','b2'='2'))
),
div(style="display:inline-block",
tags$label('Menu2', `for` = 'Sample1'),
tags$select(id = 'Sample1', class="input-small",
tagList(mapply(tags$option, value = 1:2,
paste0(letters[1:2], 1:2),
SIMPLIFY=FALSE)))
)
)
, textOutput("cond")
),
server = function(input, output) {
output$cond <- renderText({
if(input$n == 3){
paste0("Sample value selected =", input$Sample, " Sample1 value selected =",input$Sample1)
}
})
}
))
لا تنتمي إلى StackOverflow