2016-02-08 18 views
7

È possibile selezionare più valori utilizzando le stringhe complete automatiche come la ricerca di google e la selezione dei tag di overflow dello stack nella casella di testo lucida.Completamento automatico e selezione di più valori nella casella di testo lucida

dataset<-cbind("John Doe","Ash","Ajay sharma","Ken Chong","Will Smith","Neo"....etc) 

voglio selezionare più variabili dal set di dati di cui sopra come un auto di compilare la mia casella di testo e passarlo al mio server.R

ui.R

shinyUI(fluidPage(
    titlePanel("test"), 

    sidebarLayout(
    sidebarPanel(
     helpText("text"), 

     textInput("txt","Enter the text",""), 
     #Pass the dataset here for auto complete 

    ), 

    mainPanel(
     tabsetPanel(type="tab",tabPanel("Summary"),textOutput("text2")) 

    ) 
) 
)) 

server.R

# server.R 

shinyServer(function(input, output) { 

output$text2<- renderText({ 
paste("hello",input$txt) 

}) 


} 
) 

CURA

Ho usato select2input da shinysky per la selezione di varialbes multipli, ma ora ho aggiunto il pulsante submit per ottenere insieme i valori selezionati.

#ui.R 
select2Input("txt","This is a multiple select2Input",choices=c("a","b","c"),selected=c("")), 

actionButton("go","submit") 

voglio legare opzione selezionata consente di dire utente selezionato A e C quindi nuova variabile è

#server.R 
input$go #if pressed submit button 
var<-cbind("a","c") 
output$text<-renderText({ print ("var")}) 

ma questo non sta funzionando

+3

La modifica è una domanda elementare, si dovrebbe leggere su 'shiny' come queste cose sono molto semplici da fare. Modificherò di nuovo la mia domanda, ma la prossima volta postare una nuova domanda –

risposta

11

Guardare in shinysky pacchetto e textInput.typeahead. Puoi personalizzare ulteriormente lo stile dello textinput. Edit: Ho aggiunto esempio con select2Input dal pacchetto shinysky anche per riferimento

rm(list = ls()) 

library(shinysky) 
library(shiny) 

my_autocomplete_list <- c("John Doe","Ash","Ajay sharma","Ken Chong","Will Smith","Neo") 

ui <- shinyUI(
    fluidPage(tags$style(type="text/css",".shiny-output-error { visibility: hidden; }",".shiny-output-error:before { visibility: hidden; }"), 
      tags$style(type="text/css","#search { top: 50% !important;left: 50% !important;margin-top: -100px !important;margin-left: -250px 
         !important; color: blue;font-size: 20px;font-style: italic;}"),   

      mainPanel( 
       # one way of doing it 
       textInput.typeahead(id="search", 
            placeholder="Type your name please", 
            local=data.frame(name=c(my_autocomplete_list)), 
            valueKey = "name", 
            tokens=c(1:length(my_autocomplete_list)), 
            template = HTML("<p class='repo-language'>{{info}}</p> <p class='repo-name'>{{name}}</p>") 
      ), 
       br(),br(), 
       # using select2Input 
       select2Input("select2Input1","",choices=c(my_autocomplete_list),type = c("input", "select")) 
      ) 
) 
) 

server <- function(input, output, session) {} 
shinyApp(ui = ui, server = server) 

enter image description here

enter image description here

Edit 2 secondo la richiesta. Si prega di avvolgere gli oggetti in un'espressione reactive come ho fatto ad es. var <- reactive({...}) in modo da poter riutilizzare quelli successivamente

rm(list = ls()) 

library(shinysky) 
library(shiny) 

my_autocomplete_list <- c("John Doe","Ash","Ajay sharma","Ken Chong","Will Smith","Neo") 

ui <- shinyUI(
    fluidPage(sidebarPanel(select2Input("txt","",choices=c("a","b","c"),selected=c("")), br(),actionButton("go","submit"), width =2), 
      mainPanel(textOutput('text')) 
) 
) 

server <- function(input, output, session) { 

    var <- reactive({ 
    if(input$go==0){return()} 
    isolate({ 
     input$go 
     cbind("a","c") 
    }) 
    }) 
    output$text <- renderText({var()}) 
} 
shinyApp(ui = ui, server = server) 
+1

ehi grazie per indicare shinysky .. In shinysky questa funzione 'select2Input()' è più appropriata per il mio codice .. Ancora una volta grazie – Eka

+0

Ho aggiunto dubbi addizionali a la mia domanda saresti in grado di aiutarmi – Eka

Problemi correlati