根据基于数据库值可用的天数更新datepicker



我当前正在尝试根据摘自MySQL数据库并存储在PHP数组中的值中的jQuery DatePicker上的某些日子。我在将PHP数组转换为jQuery,然后读取值以禁用尚未选择为用户可用的日子时遇到困难。任何人都可以引导我完成创建此功能所要做的事情。将PHP数组编码为JSON

后,我在此过程中有点丢失
 $daysavailquery = "SELECT Monday, Tuesday, Wednesday, Thursday, Friday, 
 Saturday, Sunday FROM miiLearning_tutorAvail WHERE id = 
 $id";
$daysavailresult = mysqli_query($conn, $daysavailquery);
$daysavailarray = mysqli_fetch_array($daysavailresult);
//Convert days avail to json
$DaysAvailJSON = json_encode($daysavailarray);
echo $DaysAvailJSON;
<script>
        $( function() {

            $( "#datepicker" ).datepicker({
                dateFormat: "yy-mm-dd"
                var daysAvailArray = <?php echo json_encode($daysavailarray) ?>
                beforeShowDay: function(date) {
                var day = date.getDay();
                console.log(day);
                if (day == 0 && daysAvailArray[0]==1)
                  return [true];
                if (day == 1 && daysAvailArray[0]==1)
                  return [true];
                if (day == 2 && daysAvailArray[0]==1)
                  return [true];
                if (day == 3 && daysAvailArray[0]==1)
                  return [true];
                if (day == 4 && daysAvailArray[0]==1)
                  return [true];
                if (day == 5 && daysAvailArray[0]==1)
                  return [true];
                if (day == 6 && daysAvailArray[0]==1)
                  return [true];
                return [false];
              }
            });
        } );
    </script>
<div class="form-group">
     <label for="datepicker">Pick a date</label>
     <input type="text" date-date- format="yy-mm-dd" name="datepicker" 
id="datepicker" class="form-control" required>
</div>

我将假设该表包含每天的真或错误值。

$daysavailarray = mysqli_fetch_array($daysavailresult);
// should be have associate array
//[ 'monday' => '1', 'Sunday' => '0']
// we don't need the day name so we will use MYSQLI_NUM to have it as numerical index [ 0 => '1' , 1 => '0' ]
$daysavailarray = mysqli_fetch_array($daysavailresult, MYSQLI_NUM);

现在想将PHP数组转换为JavaScript数组json_encode将执行作业

var daysAvailArray = <?php echo json_encode($daysavailarray) ?>;

因为我们有一天作为索引,所以更容易查看它是否false

var day = date.getDay();
console.log(day);
return daysAvailArray[day-1] ? [true] : [false];

完整的JavaScript代码

<script>
    $( function() {
        var daysAvailArray = <?php echo json_encode($daysavailarray) ?>;
        $( "#datepicker" ).datepicker({
            dateFormat: "yy-mm-dd",
            beforeShowDay: function(date) {
                var day = date.getDay();
                return (daysAvailArray[day-1] == '1') ? [true] : [false];                           
            }
        });
    } );
</script>

最新更新