Как отключить определенные дни недели на датчике jQuery на основе результата в базе данных с PHP - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть mySQL база данных с таблицей информации о персонале и днях недели, когда они работают, например, вторник, среда, пятница.

У меня есть HTML из которого пользователь может записать встречу, идея основывается на том, с кем он хочет, чтобы встреча зависела бы от того, какие дни он может выбрать в jquery DatePicker.

HTML

<form action="" method="post">
     <input type="text" id="Name" name="Name" required="required" value="Name">
     <select id="SelectStylest" name="stylest">

`<?php 

     $sql = mysqli_query($con, "SELECT Name FROM staff") or die(mysqli_error());

      while ($row = $sql->fetch_assoc()){

        echo "<option value='".$row['Name']."'>".$row['Name']."</option>";

      }

    ?>
    </select>

    <input type="text" name="appointment_date"id="datepicker">

    <input type="submit" name="submit" id="submit" value="Submit" />
</form>

          
          $( function() {
            $( "#datepicker" ).datepicker();
             $('input.timepicker').timepicker({
                minTime: "09:00",
                maxTime: "17:00"
               
             });
            });
           
    

Я знаю, что мне нужно выполнить следующий запрос, чтобы найти в базе данных друга имя стилиста, но после этого я заблудился.Я нашел проблему, но не нашел ничего по этому вопросу.

$stylest = $_POST['stylest'];

    $query = mysqli_query($con,"SELECT * FROM staff WHERE Name LIKE '%$stylest%'"); 

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

это отключит выходные дни и выбор списка выходных

var disabledDays = ["2018-11-22","2018-11-23","2018-12-24","2018-12-25", "2019-01-01"]

$( "input#ship_date" ).datepicker({   
    changeMonth: true,
    changeYear: true,
    dateFormat: "yy-mm-dd",
    numberOfMonths: 1,
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        var day = date.getDay();        
        return [ day != 0 && day != 6 && disabledDays.indexOf(string) == -1 ]
    }
});      
0 голосов
/ 20 ноября 2018

Вы можете сделать это с помощью опции beforeShowDay в окне выбора даты.Например, это включает только вторники, среды и пятницы:

workingDays = [2, 3, 5];

$( "#datepicker" ).datepicker({
  beforeShowDay: function (date) {
      return [workingDays.indexOf(date.getDay()) > -1];
  }
});

День недели, возвращаемый датой, идет с воскресенья = 0 до субботы = 6.


Для преобразования вашего текущего working_days формат в числовой массив workingDays, необходимый в JS, вы можете использовать:

<?php
... // get row from mysqli_fetch_assoc
$weekDays = explode(',', $row['working_days']);
$days = [];
foreach ($weekDays as $d) {
    if ($d == 'Sunday') $days[] = 0;
    if ($d == 'Monday') $days[] = 1;
    // ... and so on
}
echo '<script type="text/javascript">workingDays='.json_encode($days).'</script>';
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...