从数据库表到数组的提取时间以禁用特定/选定的时间选择器

Fetch time(s) from database table to array for disable particular/selected time pickers

提问人:NAFIS 提问时间:1/11/2023 最后编辑:XunNAFIS 更新时间:1/11/2023 访问量:74

问:

我这里有数据库中的表,我只想在这里获取时间(fld_booking_pickup、fld_booking_start、fld_booking_end tbl_bookings数据库中),以便在这里禁用通过时间选择器在数据库中选择的特定时间。

这是我为时代设定的编码:

<div class="form-group">
 <label for="Pickup">Pickup Time</label>
 <input type="time" class="form-control timepicker" name="fld_booking_pickuptime" id="fld_booking_pickuptime" placeholder="hh:mm A" value="" required>
</div>
<div class="form-group">
 <label for="StartTime">Program Time (Start)</label>
 <input type="time" class="form-control timepicker" name="fld_booking_start" id="fld_booking_start" placeholder="hh:mm A" value="" required>
</div>
<div class="form-group">
 <label for="EndTime">Program Time (End)</label>
 <input type="time" class="form-control timepicker" name="fld_booking_end" id="fld_booking_end" placeholder="hh:mm A" value="" required>
</div>

这是我用来禁用时间选择的脚本(我想过在脚本中用时间替换日期,但我可能是错的,因为我真的不知道任何其他时间方法,因为我对此完全陌生):

<?php
$times = array();
        
$time_query = "SELECT `tbl_bookings`.`fld_booking_pickuptime`, `tbl_bookings`.`fld_booking_start`, `tbl_bookings`.`fld_booking_end` FROM `tbl_bookings` WHERE status_delete=1";
$time_result = mysqli_query($link, $time_query);
  if (mysqli_num_rows($time_result ) > 0) {
    while ($row = mysqli_fetch_assoc($time_result )) {
       $times [] = $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'];
    }
  }
?>

  var array = <?= json_encode($times)?>;

$('input.timepicker').timepicker({
    beforeShowDay: function(time){
        var string = jQuery.timepicker.formatTime('hh:mm A', date);
        return [ array.indexOf(string) == -1 ]
    }
});

我想从数据库中获取相应的时间作为数组,以便可以禁用时间进行选择(使用数据库中已有的时间)。我在这方面是全新的,所以我希望有人能帮助我从数据库中获取时间选择禁用的时间。非常感谢,非常感谢~

javascript php mysql 数组 mysqli

评论

0赞 mickmackusa 1/11/2023
您的属性未指向具有匹配值的元素,因此它们将无法正常工作。正如您所知,您可以简单地写 .对我来说看起来像是无效的 PHP。你的意图是什么?foridforeach (mysqli_query($link, $time_query) as $row) {$times [] = $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'];
0赞 NAFIS 1/11/2023
@mickmackusa我已经按照答案的建议修复了无效的PHP部分,我可以知道该行的for属性吗?我的目的是获取这 3 个数据,以便对于同一日期的新预订,其中的时间将被禁用以选择。
0赞 mickmackusa 1/11/2023
developer.mozilla.org/en-US/docs/Web/HTML/Element/label你不需要像答案说的那样写三遍。只需将逗号分隔的值括在方括号中即可。$times$times[] = [$one, $two, $three];
0赞 NAFIS 1/11/2023
@mickmackusa我认为我确实喜欢,还是我做错了?$times [] = $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'];
0赞 mickmackusa 1/11/2023
$times[] = [$row['fld_booking_pickuptime'], $row['fld_booking_pickuptime'], $row['fld_booking_pickuptime']];请注意额外的方括号。

答: 暂无答案