【问题标题】:Dates select from Mysql to work with bootstrap datepicker从 Mysql 中选择日期以使用引导程序 datepicker
【发布时间】:2020-03-30 03:54:01
【问题描述】:

我正在尝试从 mysql 中突出显示 datepicker 中的所有日期,但无法正常工作,我认为问题出在数组上,或者我不知道,问题是当我在 user_busy_days 变量中写入时 ['2019-12-01 ','2019-12-02'];正在工作,但下面的代码不起作用。任何帮助表示赞赏。

PHP:

<?php
    $sql = mysqli_query($con,"SELECT dates FROM mls_cereri GROUP BY dates");
      $Data= Array();
    while ($row = mysqli_fetch_array($sql, MYSQLI_ASSOC)) 
    {
         $Data[] = $row['dates'];
    }
        $event =   json_encode($Data);
      ?>

Javascript:

var user_busy_days =  '<?php echo $event; ?>'; // <- Working example:  ['2019-12-01','2019-12-02']

 $('#to_date').datepicker({
    inline: true,
    sideBySide: true,
    format: "yy-mm-dd",
    orientation: "bottom auto",
    todayHighlight: true,
    autoclose: true,

    beforeShowDay: function (date) {
                calender_date = date.getFullYear()+'-'+(date.getMonth()+1)+'-'+('0'+date.getDate()).slice(-2);
                var search_index = $.inArray(calender_date, user_busy_days);
                if (search_index > -1) {
                    return {classes: 'non-highlighted-cal-dates', tooltip: 'User available on this day.'};
                }else{
                    return {classes: 'highlighted-cal-dates', tooltip: 'User not available on this day.'};
                }
            }
});

【问题讨论】:

  • 它从 PHP 生成 ["2019-12-20", "2019-12-21"]
  • 你确定吗?看起来它生成了'["2019-12-20", "2019-12-21"]' - 从'&lt;?php echo $event; ?&gt;' 周围删除'。使用console.log(user_busy_days.length) 确认 - 如果是 28 则为字符串。
  • 我已经删除了 ' 并且现在正在工作.. 谢谢@freedomn-m

标签: javascript php jquery datepicker


【解决方案1】:

渲染时,这一行:

 var user_busy_days = '<?php echo $event; ?>'; 

变成

var user_busy_days = '["2019-12-01", "2019-12-02"]';

它被包裹在一个字符串中,因此检查$.inArray(calender_date, user_busy_days); 是检查字符串中的字符而不是数组中的字符串。

删除',使user_busy_days变成一个数组:

 var user_busy_days = <?php echo $event; ?>; 

额外:

假设 php 日期输出为 2020-01-01(示例仅显示 2 位数月份),代码 (date.getMonth()+1) 还需要 0+slice 技巧来处理第 1-9 个月)

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 2023-03-18
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多