我正在尝试将动态值插入
datepicker()方法。
我可以插入一个变量,如下所示:
<html>
<head>
<?php $date='2-15-2013'; ?>
<script>
var date = '<?php echo $date; ?>';
/* create an array of days which need to be disabled */
var disabledDays = [
date,
"2-21-2013",
];
/* utility functions */
function bookedDays(date) {
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
for (i = 0; i < disabledDays.length; i++) {
if($.inArray((m+1) + '-' + d + '-' + y, disabledDays) != -1 ) {
return [false];
}
}
return [true];
}
/* create datepicker */
jQuery(document).ready(function() {
jQuery('#datepicker').datepicker({
minDate: 0,
maxDate: "+3M +10D",
dateFormat: 'dd MM, yy',
constrainInput: true,
beforeShowDay: bookedDays
});
});
</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker" /></p>
</body>
日期'2-15-2013'已正式停用。为什么我不能插入一串值说:
$dates = ['2-21-2013', '2-24-2013', '2-27-2013'];
$unavailable = array();
foreach($dates as $date){
array_push( $unavailable, $date);
}
$unavaildays = implode(',', $unavailable);
$string = "{$unavaildays},";
?>
<script>
var dates = '<?php echo $string; ?>';
/* create an array of days which need to be disabled */
var disabledDays = [
dates
"2-21-2013",
];
/* utility functions */
function bookedDays(date) { ...
日期:
2-21-2013,2-24-2013,2-27-2013,被禁用?我的值在运行时在服务器上解析不是吗?
答案 0 :(得分:1)
你错过了日期的引号:
$dates = ['"2-21-2013"', '"2-24-2013"', '"2-27-2013"'];
答案 1 :(得分:0)
正如@ahoo回答引号有问题,但不是全部。似乎disabledDays
也以错误的方式与dates
分配。
我会推荐类似的东西:
<?
$dates = ['2-21-2013', '2-24-2013', '2-27-2013'];
$unavailable = array();
foreach($dates as $date){
array_push( $unavailable, "'$date'");
}
$unavaildays = '[' . implode(',', $unavailable) . ']';
?>
<script>
var disabledDays = <?= $unavaildays?>;
disabledDays.push('2-21-2013');
这样你就可以使用php制作正确的初始数组了,而且你可以在javascript中添加更多的日期。
现在,出了什么问题:
以这种方式添加dates
:
var dates = '<?php echo $string; ?>';
/* create an array of days which need to be disabled */
var disabledDays = [
dates
"2-21-2013",
];
结果数组是
[
'2-21-2013,2-24-2013,2-27-2013',
'2-21-2013'
]
注意第一个数组值,它不是3个日期,而是从3个日期粘贴的字符串。