Javascript 在jQuery datepicker中分配从mysql获取的日期
我在MySQL中保存了某些日期,我想在jQuery日期选择器中启用这些日期,并禁用rest日期 以下是我的尝试: 我从mysql取数后的日期是:- 一,。2014年7月7日至2014年7月15日 二,。23-08-2014 三,。2014年8月25日至2014年8月26日 要将其存储在jQuery datepicker中,下面是javascipt代码Javascript 在jQuery datepicker中分配从mysql获取的日期,javascript,jquery,mysql,datepicker,jquery-ui-datepicker,Javascript,Jquery,Mysql,Datepicker,Jquery Ui Datepicker,我在MySQL中保存了某些日期,我想在jQuery日期选择器中启用这些日期,并禁用rest日期 以下是我的尝试: 我从mysql取数后的日期是:- 一,。2014年7月7日至2014年7月15日 二,。23-08-2014 三,。2014年8月25日至2014年8月26日 要将其存储在jQuery datepicker中,下面是javascipt代码 <script type="text/javascript"> var availableDates = [9,14,15];
<script type="text/javascript">
var availableDates = [9,14,15]; //desired Days
var availableMonth = [1,5,7]; //desired Month
var availableYear = [2014,2015]; //desired Year
function available(date) {
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
if (jQuery.inArray(date.getDate(), availableDates) != -1 && $.inArray((date.getMonth()+1), availableMonth) != -1 && $.inArray(date.getFullYear(), availableYear) != -1) {
return [true, "","Available"];
} else {
return [false,"","unAvailable"];
}
}
jQuery('#datepicker').datepicker({ beforeShowDay: available });
</script>
当前脚本只在每个月启用上述日期,但我希望它是每个月的某个动态日期。为此,我尝试创建下面的对象,但不确定如何实现它
var availableTime = {
'2014' : {
'07' : ['07', '08', '09', '10'],
'08' : ['01', '02', '05']
},
'2015' : {
'02' : ['11', '18', '19', '21'],
'03' : ['21', '22', '25']
}
};
jQuery(document).ready(function() {
for(var j in obj )
{
for(var p in obj[j] )
{
for(var i = 0; i < obj[j][p].length; i++ )
{
console.log(obj[j][p][i]);
}
}
}
});
我如何实现它们
问题中的日期选择器来自以下位置:
谢谢在您所做的基础上,您可以使可用的功能如下所示: availableTime是一个数组,它将包含您上面提到的所有可用日期。此阵列可以通过ajax调用构建,也可以在渲染视图时在服务器端构建 在客户端拥有该数组后,下面的available函数用于通过在availableTime数组中查找来检查是否允许任何给定日期 这是一本书
因此,基本上,特定m的特定日期d或该年份y不为空。它将返回真值。您想做什么?必须有来自mysql数据库的输入,其日期、月份和年份将存储在数组中,这些日期需要与datepicker中的日历日期进行检查。我无法理解您的变量availableTime。没有创建此变量?我添加了一个工作示例。这会让你更好地理解它。
// The map of specific available dates by month and year
var availableTime = {
'2014': {
'7': ['7', '8', '9', '10'],
'8': ['1', '2', '5']
},
'2015': {
'2': ['11', '18', '19', '21'],
'3': ['21', '22', '25']
}
};
function available(date) {
var d, m, y, availableDates = [];
d = date.getDate().toString();
m = date.getMonth() + 1;
y = date.getFullYear();
if (availableTime[y] && availableTime[y][m]) {
/*
* Get available dates of this specific month and year from
* the map defined above
*/
availableDates = availableTime[y][m];
}
// return true if that day is allowed in the specific dates
var available = (jQuery.inArray(d, availableDates) > -1);
if (available) {
return [true, "", "Available"];
} else {
return [false, "", "unAvailable"];
}
}
jQuery('#datepicker').datepicker({
beforeShowDay: available
});