在jsp中如何实现加一个动态下拉框选择年份,并在当前页面显示相应的月份值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在jsp中如何实现加一个动态下拉框选择年份,并在当前页面显示相应的月份值?相关的知识,希望对你有一定的参考价值。

比如有一个下拉框里有2008年~2011年,选择2010年时,页面出现一列201101到201112这些数值。请高手帮忙解决。

这样就不显示了 定义和用法 value 属性规定在表单被提交时被发送到服务器的值。 与 之间的值是浏览器显示在下拉列表中的内容,而 value 属性中的值是表单被提交时被发送到服务器的值。 注释:如果没有指定 value 属性,选项的值将设置为 标签中的内容。 参考技术A 如果你是想选2008输出200801-200812,选2009输出200901-200912的话,可以试试下面的 不知道理解错了没有,参考看看吧 jsp body中 <select id="years" onchange="selyear()"> <option>2008 <option>2009 <option>2010 <option>2011 </select> <span id="showyear"></span> js函数: <script type="text/javascript"> function selyear() var selectObj=document.getElementById("years"); var year= selectObj.options[selectObj.selectedIndex].text; document.getElementById("showyear").innerHTML=year+"的月份是:"+year+"01-"+year+"12"; </script> 参考技术B 如果你是想选2008输出200801-200812,选2009输出200901-200912的话,可以试试下面的
不知道理解错了没有,参考看看吧
jsp body中
<select id="years" onchange="selyear()">
<option>2008
<option>2009
<option>2010
<option>2011
</select>
<span id="showyear"></span>
js函数:
<script type="text/javascript">
function selyear()
var selectObj=document.getElementById("years");
var year= selectObj.options[selectObj.selectedIndex].text;
document.getElementById("showyear").innerHTML=year+"的月份是:"+year+"01-"+year+"12";

</script>
参考技术C 有这样的控件 My97DatePicker 你百度下 很多的 你下一个就是了啊 不用下拉 js的 点击文本框有小窗口出现里面有时间显示 可以试下 很好用。 [http://www.whtyqj.cn]

参考资料:http://www.whytdtz.com

参考技术D 直接用html里面的下拉列表就行了,很简单的

如何从 Shiny 中的下拉框中根据变量选择动态创建直方图

【中文标题】如何从 Shiny 中的下拉框中根据变量选择动态创建直方图【英文标题】:How to dynamically create histogram upon variable selection from drop down box in Shiny 【发布时间】:2015-06-22 08:35:35 【问题描述】:

我想创建一个闪亮的应用程序,用户将在其中上传 csv 文件,上传后下拉框将填充数据集中的所有变量。

当用户从下拉框中选择一个变量时,应在主面板中绘制相应的直方图。

这是我所做的

ui.r 文件

library(shiny)

shinyUI(pageWithSidebar(
headerPanel( "Demand Forecast", "Flowserve"),
sidebarPanel(
fileInput('file1', 'Select csv file',accept=c('text/csv')
),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator', c(Comma=',',Tab='\t',  Semicolon=';' )
),
tags$hr(),
selectInput("product", "Select: ","")
 ),
mainPanel(tableOutput('contents'),

       plotOutput("hist")
      )
       ))

server.r 文件

    library(shiny)
    library(ggplot2)


    shinyServer(function(input,output,session)



    dataUpload<-reactive(

    inFile<-input$file1
    print(inFile)
    if(is.null(inFile))
      return(NULL)
    dt_frame = read.csv(inFile$datapath, header=input$header, sep=input$sep)
    updateSelectInput(session, "product", choices = names(dt_frame))
    )


    output$hist <- renderPlot(

    dataset<- dataUpload()
    hist(dataset[,dataset$product])

    )
  ) 

但是当我运行这个应用程序时,它给了我一个错误“闭包”类型的对象不是子集

请帮忙..

提前致谢

【问题讨论】:

这是一个很好的例子,说明为什么 使用函数名作为对象名 - 一个原因是它会导致混淆错误消息。 dt 是基础 R 中的一个函数(请参阅 ?dt),当您调用 dt[, colm] 而范围内不存在数据框 dt 时,R 将尝试对函数 dt 进行子集化。因此,看看您是否可以弄清楚为什么您的数据框 dt 不在您的 hist 调用范围内。 @jbaums 感谢您的 rpl.. 我已经更改了我的 server.r 文件现在当我运行这个应用程序时,它给了我一个错误,即 X 必须是数字 传递给hist()函数的值是数字吗? @Keniajin No.. 其实我是直接从 drop box 中取出变量的。所以,它也包含其他类型的变量。 【参考方案1】:

欢迎来到 R 闪亮的世界!

您想将选定的列用于直方图 -> hist(dataset[,input$product]) 你的反应函数没有返回任何东西,但你已经写了dataset&lt;- dataUpload() -> 将return() 添加到反应函数中 您还需要在renderPlot() 中进行错误检查

最小的工作示例:

library(shiny)
library(ggplot2)

server <- function(input, output, session) 

  dataUpload<-reactive(

    inFile<-input$file1
    print(inFile)
    if(is.null(inFile))
      return(NULL)
    dt_frame = read.csv(inFile$datapath, header=input$header, sep=input$sep)
    updateSelectInput(session, "product", choices = names(dt_frame))
    return(dt_frame)
    )

    #output$contents <- renderTable(
    #   dataset<- dataUpload()
    #   dataset
    #)
    output$hist <- renderPlot(
    # we need error check also here
    if(is.null(input$file1))
      return(NULL)
    dataset<- dataUpload()
    hist(dataset[,input$product])

    )




ui <- pageWithSidebar(
headerPanel( "Demand Forecast", "Flowserve"),
sidebarPanel(
fileInput('file1', 'Select csv file',accept=c('text/csv')
),
checkboxInput('header', 'Header', TRUE),
radioButtons('sep', 'Separator', c(Comma=',',Tab='\t',  Semicolon=';' )
),
tags$hr(),
selectInput("product", "Select: ","")
 ),
mainPanel(tableOutput('contents'),

       plotOutput("hist")
      )
)


shinyApp(ui = ui, server = server)

【讨论】:

以上是关于在jsp中如何实现加一个动态下拉框选择年份,并在当前页面显示相应的月份值?的主要内容,如果未能解决你的问题,请参考以下文章

C#怎么实现下拉框动态绑定数据

jsp中如何实现两个select下拉框联动

jsp文本框如何动态设置只读以及设置select是否可以下拉

如何在jsp中使用下拉列表、文本框和搜索按钮获取数据

easyui中如何设置下拉列表框只能选择,列表框内不能输入,

jsp下拉框联动问题