从数据库表获取日期到数组以禁用特定/选定日期选择器 [duplicate]

Fetch date from database table to array for disable particular/selected date picker [duplicate]

提问人:NAFIS 提问时间:1/10/2023 最后编辑:NAFIS 更新时间:1/13/2023 访问量:82

问:

我这里有来自数据库的表,我只想获取日期(fld_booking_date在这里tbl_booking数据库中),以便在此处禁用已在数据库中选择的特定日期。

这是我为日期设置的编码:

<div class="form-group">
                    <label for="BookingDate">Date</label>
                    <input class="form-control datepicker" name="fld_booking_date" id="fld_booking_date" placeholder="mm/dd/yyyy" value="" required>
                  </div>

这是我用来禁用日期选择的脚本,基于 https://dzone.com/articles/disable-dates-in-datepickerhttp://jsfiddle.net/sibeeshvenu/gj90f1bm/

var array = ["2023-01-04","2023-01-05","2023-01-09", "2023-01-10", "2023-01-11", "2023-01-12", "2023-01-13"]

$('input.datepicker').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [ array.indexOf(string) == -1 ]
    }
});

我想从数据库中获取日期作为数组,以便可以禁用日期进行选择(使用数据库中已有的日期,而不是那 7 个日期)。我在这方面是全新的,所以我希望任何人都能在某种程度上获得数组以从数据库中获取日期。非常感谢,非常感谢~

javascript php mysql 数组 mysqli

评论


答:

0赞 Sajjad Ali 1/10/2023 #1

比斯米拉!

首先,您必须将所有日期保存在数据库(PHP代码)中,例如:

$dates = array();
        
$date_query = "SELECT `YOUR_TABLE`.`YOUR_DATE_COLUMN` FROM `YOUR_TABLE`
                where YOUR_CONDITIONS";
$date_result = mysqli_query($con, $date_query) or die("Query Unsuccessful.");
  if (mysqli_num_rows($date_result ) > 0) {
    while ($row = mysqli_fetch_assoc($date_result )) {
       $dates [] = $row['YOUR_DATE_COLUMN'];
    }
  }

然后在 javascript 变量中回显此变量,如下所示:

var array = <?= json_encode($dates)?>;
$('input.datepicker').datepicker({
   beforeShowDay: function(date){
      var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
       return [ array.indexOf(string) == -1 ]
   }
});

贾扎克真主! 有好的一天。

评论

0赞 NAFIS 1/11/2023
非常感谢,我已经成功获取了所有可用的日期,因此禁用了这些日期但是我的下一个问题是在我填写新预订后,未检测到日期并且提交的日期在“0000-00-00”中,因此没有禁用任何日期。我可以知道在哪里可以解决这个问题吗?