在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<- 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中如何实现加一个动态下拉框选择年份,并在当前页面显示相应的月份值?的主要内容,如果未能解决你的问题,请参考以下文章
jsp文本框如何动态设置只读以及设置select是否可以下拉