繁体   English   中英

如何将php数组转换为javascript数组以与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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM