【问题标题】:Disabling dates from MySQL database on JQuery date picker在 JQuery 日期选择器上禁用 MySQL 数据库中的日期
【发布时间】:2019-04-08 20:47:22
【问题描述】:

我有一个日期预订表单,其中包括两个输入字段:开始日期选择器和结束日期选择器。我正在尝试使用选择查询禁用已经预订并从 MySQL 数据库中提取的日期。查询结果存储在一个数组中。每次用户提交表单时,不应允许下一个用户预订前一个用户已经预订的相同日期。最大的问题是我的脚本出于某种未知原因仅禁用了数据库中最后插入的日期范围。我的目标是禁用存储在数组中的所有先前预订的日期。我已经尝试将查询结果分配给 foreach 循环中的数组 $datesBooked[] = $row2['dateRange'];但有了这个想法,没有一个日期被禁用。

 <?php
//My php script 
 $statement1 = $pdo->query("SELECT dateRange FROM bookings");
 $statement1->execute();

  $datesBooked = [];


    foreach($statement1 as $row2){
        $datesBooked =  $row2['dateRange'];
                //print_r($datesBooked);        
    }

?>

$(document).ready(function(){
//My javascript
   $('#dateStart').datepicker({
        dateFormat: "yy-mm-dd",
        minDate: new Date(),
        beforeShowDay: function(date){
            var enableDays1 =  <?php echo json_encode($datesBooked);?>;
            var formattedDate = jQuery.datepicker.formatDate("yy-mm-dd", date);
            if(enableDays1.indexOf(formattedDate)==-1){ 

            return[true,'markHoliday2'];
            }else{
                return[false];

            }
        },


 });

 $('#dateEnd').datepicker({
        dateFormat: "yy-mm-dd",
        minDate: new Date(),
        beforeShowDay: function(date){
            var enableDays1 =  <?php echo json_encode($datesBooked);?>;
            var day = date.getDay();
            var formattedDate = jQuery.datepicker.formatDate("yy-mm-dd", date);
            if(enableDays1.indexOf(formattedDate)==-1){ 

            return[true,'markHoliday2'];

            }else{

            return[false];  

            }
        },


 });

 });

【问题讨论】:

标签: javascript php


【解决方案1】:

这是因为当您在代码中使用$datesBooked 时,foreach 循环已完成。所以你只剩下最后一个值 - 无论循环最后一次运行的值是什么,因为那是最后一次将值分配给该变量。每次循环运行时,您都会用全新的值覆盖 $datesBooked 的值。

您可能打算向 $datesBooked 数组添加一个新项目,而不是覆盖整个变量?在这种情况下,您需要编写

$datesBooked[] =  $row2['dateRange'];

[] 表示它在数组中添加了一个新项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2020-08-25
    • 1970-01-01
    相关资源
    最近更新 更多