我正在尝试显示jquery datepicker日历,其中包含存储在mysql中的高亮显示日期。 问题是当运行带有自定义日期的脚本时,其显示日历带有突出显示的日期。下面的代码是使用自定义日期运行的,
beforeShowDay: function(date) {
var custom_dates = ["2014-10-31","2014-10-28","2014-10-27","2014-10-03","2014-10-29","2014-11-04"];
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
for (i = 0; i < custom_dates.length; i++) {
if($.inArray(y + '-' + (m+1) + '-' + d,custom_dates) != -1) {
return [true, 'css-for-DBdates', 'Planned date'];
}
}
return [true];
}
但是当我使用数据库中的日期运行脚本时,其显示日历没有高亮显示日期。下面的代码正在运行数据库日期,
的index.jsp
<%
ArrayList Datesinarray=new ArrayList();
try
{
String class1=session.getAttribute("class").toString();
String userid=session.getAttribute("user_id").toString();
String subject=session.getAttribute("subject").toString();
Class.forName("com.mysql.jdbc.Driver");
Connection connection =DriverManager.getConnection("jdbc:mysql://localhost:3306/raptor1_5","root","");
Statement st=connection.createStatement();
ResultSet rs=st.executeQuery("select date from tblplanner where User_id='"+userid+"' and class='"+class1+"' and subject='"+subject+"'");
while(rs.next())
{
char a='"';
String c="'";
String datefrdb = rs.getString("date");
String bb=a+datefrdb+a;
Datesinarray.add(bb);
//System.out.println();
}
System.out.println("array value is :"+Datesinarray);
%>
<script>
$( "#datetextbox").datepicker({
beforeShowDay: function(date) {
var DB_dates = [<%=Datesinarray%>];
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
for (i = 0; i < DB_dates.length; i++) {
if($.inArray(y + '-' + (m+1) + '-' + d,DB_dates) != -1) {
return [true, 'css-for-DBdates', 'Planned date'];
}
}
return [true];
}
});
</script>
数组值的数据库打印日期为:[“2014-10-27”,“2014-10-28”,“2014-10-29”,“2014-10-30”,“ 2014-10-31“,”2014-11-03“] 。
有人告诉我哪里错了吗?注意:当我打印custom_dates.length时,它显示6.但DB_dates.length显示为1.
答案 0 :(得分:0)
我在脚本中做了一个小错误,我初始化了变量值 var DB_dates = [&lt;%= Datesinarray%&gt;] ;而不是 var DB_dates =&lt;%= Datesinarray%&gt ;; 。
现在工作正常。