У меня есть база данных 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%'");
Вы можете сделать это с 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>';
?>
это отключит выходные дни и выбор списка праздников
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 ]
}
});