[英]Javascript array of dates - not iterating properly (jquery ui datepicker)
[英]How to convert php array into javascript array to use with the Jquery UI datepicker?
现在,我正在使用手动输入的日期数组,称为disable,以使用beforeShowDay方法禁用jquery UI datepicker中的日期。 这工作正常,但是,我有一个PHP变量$ disablethese,它存储要禁用的动态日期数组。 由于某种原因,我似乎无法将我的php数组转换为javascript数组(我称其为unavailabledates)。 它不会引发任何错误,但是它不能像静态数组一样有效地阻止日期。
<script type="text/javascript">
var unavailabledates = <?php echo json_encode($disablethese); ?>;
</script>
<script src="js/datepicker-admin.js"></script>
这是datepicker-admin.js
$(document).ready(function() {
var disable = ["2014-01-03","2014-01-13","2014-01-23"];
$('#fromDate').datepicker({
beforeShowDay: function(date) {
if($.inArray($.datepicker.formatDate('yy-mm-dd', date ), disable) > -1) {
return [false, "highlighted", "Booked out"];
} else {
return [true, "", "available"];
}
}
});
});
您可以使用$.parseJSON
函数。
<script type="text/javascript">
var unavailabledates = $.parseJSON('<?php echo json_encode($disablethese); ?>');
</script>
<script src="js/datepicker-admin.js"></script>
您可以直接使用JSON.parse()
var unavailabledates = JSON.parse(<?php echo json_encode($disablethese); ?>);
您可以使用.push
将所有值插入数组。
<script type="text/javascript">
var unavailabledates = new Array();
<?php
$disbaleddates = json_encode($disablethese);
for($i=0;$i<count($disbaleddates);$i++) { ?>;
unavailabledates.push('<?=$disbaleddates[$i]?>');
<?php } ?>
</script>
<script src="js/datepicker-admin.js"></script>
这可能会解决您的问题,但是可能还有很长的路要走!! :)
1)在php页面中创建一个隐藏字段:
<input id="disable-dates" type="hidden" value="<?php echo json_encode($disablethese); ?>">
2)使用jquery:
<script type="text/javascript">
var unavailabledates = $.parseJSON($('#disable-dates').val());
</script>
两者同时
您是否在中分配了不可用的日期
var disable = [“ 2014-01-03”,“ 2014-01-13”,“ 2014-01-23”];
喜欢
var disable = unavailabledates;
我正在使用laravel,这很漂亮:
var something = JSON.parse('{!! json_encode(['foo' => 'bar']) !!}');
我有些困惑,因为我不知道为什么这行不通:
var something = JSON.parse('{{ json_encode(['foo' => 'bar']) }}');
第二种方法是转义文档中的HTML实体。 但是,是的,只有laravel。
var obj = <?php echo json_encode($_GET) ?>;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.