Как отключить определенные дни недели на датчике jQuery на основе результата в базе данных с PHP

0

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

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

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%'"); 
Теги:
mysqli

2 ответа

1
Лучший ответ

Вы можете сделать это с beforeShowDay параметра beforeShowDay в 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>';
?>
  • 0
    да, но если меняется количество рабочих дней, я хочу, чтобы их забирали только из базы данных, чтобы им не приходилось редактировать какой-либо код. Я хочу, чтобы информация просто изменялась в базе данных. Этот код не будет работать, так как в нем более одного сотрудника.
  • 0
    Да [2,3,5] был просто примером. Вы должны выяснить, как получить его из вашей базы данных. Если вам нужна помощь по этой части, вам нужно включить в вопрос дополнительную информацию, например, как графики рабочих хранятся в вашей базе данных.
Показать ещё 6 комментариев
0

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

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 ]
    }
});      

Ещё вопросы

Сообщество Overcoder
Наверх
Меню