-
Notifications
You must be signed in to change notification settings - Fork 0
/
select-time.php
144 lines (118 loc) · 4.78 KB
/
select-time.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
require_once "../includes/database.php";
/** @var mysqli $db */
$selectedTime = '';
if (isset($_POST['submit'])) {
//Postback with the data showed to the user, first retrieve data from 'Super global'
$name = mysqli_real_escape_string($db, $_POST['name']);
$selectedTime = mysqli_real_escape_string($db, $_POST['time']);
$date = mysqli_escape_string($db, $_POST['date']);
$endTime = date('H:i', strtotime($selectedTime . ' 1hour'));
//Require the form validation handling
require_once "../includes/form-validation.php";
if (empty($errors)) {
//Save the record to the database
$query = "INSERT INTO planning_system.reservations
(description, date, start_time, end_time)
VALUES ('$name', '$date', '$selectedTime', '$endTime')";
$result = mysqli_query($db, $query)
or die('Error: ' . mysqli_error($db) . 'QUERY: ' . $query);
if ($result) {
header('Location: index.php');
} else {
$errors[] = 'Something went wrong in your database query: ' . mysqli_error($db);
}
}
}
if (isset($_GET['date']) && !empty($_GET['date'])) {
// Haal de datum op
$date = '';
// Haal de reserveringen uit de database voor een specifieke datum
// Maak een array met tijden van 09:00 - 17:00 met stappen van 30 minuten.
$times = [];
$time = strtotime('09:00');
$timeToAdd = 30;
// Blijf de times aray vullen totdat 17:00 bereikt wordt.
// time toevoegen aan times array
// time + een half uur optellen
// Doorloop alle reserveringen en filter alle tijden die gelijk zijn
// aan de tijd van een reservering t/m een uur later.
// Zet alle overgebleven tijden in de array $availableTimes.
$availableTimes = [];
// doorloop alle tijden (van 9:00 - 17:00)
// controleer de tijd tegen ALLE reserveringen van die dag
// ALS de tijd van de begintijd tot de eindtijd van
// een reservering valt voeg deze tijd ($time) niet
// toe aan availableTimes
} else {
header('Location: select-date.php');
}
?>
<!doctype html>
<html lang="en">
<head>
<title>Nieuwe reservering - tijd</title>
<meta charset="utf-8"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
</head>
<body>
<section class="container content">
<h1 class="title">Nieuwe reservering voor <?= date('j F Y', strtotime($date)) ?></h1>
<form action="" method="post">
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label" for="name">Name afspraak</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input" id="name" type="text" name="name" value="<?= $name ?? '' ?>"/>
</div>
<p class="help is-danger">
<?= $errors['name'] ?? '' ?>
</p>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label is-normal">
<label for="time" class="label">Tijd</label>
</div>
<div class="field-body">
<div class="field is-narrow">
<div class="control">
<div class="select is-fullwidth">
<select id="time" name="time">
<option value="" >Kies een tijd</option>
<?php foreach ($availableTimes as $availableTime) { ?>
<option value="<?= $availableTime ?>" <?= $selectedTime == $availableTime ? 'selected' : '' ?>><?= $availableTime ?></option>
<?php } ?>
</select>
</div>
<p class="help is-danger">
<?= $errors['time'] ?? '' ?>
</p>
</div>
</div>
</div>
</div>
<input type="hidden" name="date" value="<?= $date ?>"/>
<div class="field is-horizontal">
<div class="field-label">
<!-- Left empty for spacing -->
</div>
<div class="field-body">
<div class="field">
<div class="control">
<button class="button is-link" name="submit">
Afspraak maken
</button>
</div>
</div>
</div>
</div>
</form>
<a class="button mt-4" href="../index.html">« Terug naar de index</a>
</section>
</body>
</html>