Ich versuche, Fullcalendar zu implementieren, damit Benutzer volle Tage anfordern können. Obwohl die korrekten Daten in der Datenbank veröffentlicht werden, zeigt der Kalender nicht die richtigen Daten am vorderen Ende an. < /p>
Z. Wenn ich 24-28 Februar (einschließlich 5 Tage insgesamt) ausgewählt habe und Ende 28.) Aber wenn der Kalender aktualisiert wird, zeigt es nur 4 Tage (24. bis 27.). p>
JavaScript von Dashboard.php: < /p>
document.addEventListener('DOMContentLoaded', function () {
var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'dayGridMonth',
firstDay: 1,
editable: false,
selectable: true,
eventSources: [
{
url: "fetch-event.php",
method: "GET",
failure: function () {
alert("There was an error fetching events.");
}
}
],
select: function (selectionInfo) {
var start = selectionInfo.startStr;
var end = new Date(selectionInfo.end);
end.setDate(end.getDate() - 1);
var formattedStart = new Date(start).toLocaleDateString("en-GB");
var formattedEnd = new Date(end).toLocaleDateString("en-GB");
var confirmMessage = "Do you want to request dates from " + formattedStart + " to " + formattedEnd + "?";
if (window.confirm(confirmMessage)) {
var firstName = "";
var lastName = "";
fetch("request-event.php", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: `start=${start}&end=${end.toISOString().split('T')[0]}&firstName=${encodeURIComponent(firstName)}&lastName=${encodeURIComponent(lastName)}`
})
.then(response => response.text())
.then(data => {
if (data.trim() === "1") {
displayMessage("Event request sent successfully!");
setTimeout(() => {
calendar.refetchEvents();
}, 500);
} else {
alert("Failed to request event.");
}
});
}
calendar.unselect();
}
});
calendar.render();
});
< /code>
request-event.php:
$start = isset($_POST['start']) ? $_POST['start'] : '';
$end = isset($_POST['end']) ? $_POST['end'] : '';
$firstName = isset($_POST['firstName']) ? trim($_POST['firstName']) : '';
$lastName = isset($_POST['lastName']) ? trim($_POST['lastName']) : '';
$start = date('Y-m-d', strtotime($start));
$end = date('Y-m-d', strtotime($end)); // Store `end` exactly as received
$eventTitle = "Requested by $firstName $lastName";
if (!empty($firstName) && !empty($lastName)) {
$query = "INSERT INTO events (title, start, end, allDay, approved) VALUES (?, ?, ?, 1, 0)";
$stmt = $conn->prepare($query);
$stmt->bind_param("sss", $eventTitle, $start, $end);
$stmt->execute();
$stmt->close();
echo "1"; // Success
} else {
die("Error: Name fields are empty.");
}
< /code>
fetch-event.php
$query = "SELECT id, title, start, end, allDay, approved FROM events";
$result = $conn->query($query);
$events = [];
while ($row = $result->fetch_assoc()) {
$events[] = [
"id" => $row["id"],
"title" => $row["title"],
"start" => $row["start"], // No modifications
"end" => $row["end"], // No modifications
"allDay" => (bool)$row["allDay"],
"approved" => $row["approved"]
];
}
$conn->close();
header('Content-Type: application/json');
echo json_encode($events ?: []);
Wenn ich fetch-event.php +1 Tag hinzufüge, damit es für Februar funktioniert, ist das in Ordnung, aber dann sind die zukünftigen Monate immer noch 1 Tag kurz anstelle des Originals 2.
Ich versuche, Fullcalendar zu implementieren, damit Benutzer volle Tage anfordern können. Obwohl die korrekten Daten in der Datenbank veröffentlicht werden, zeigt der Kalender nicht die richtigen Daten am vorderen Ende an. < /p> Z. Wenn ich 24-28 Februar (einschließlich 5 Tage insgesamt) ausgewählt habe und Ende 28.) Aber wenn der Kalender aktualisiert wird, zeigt es nur 4 Tage (24. bis 27.). p> JavaScript von Dashboard.php: < /p> [code]document.addEventListener('DOMContentLoaded', function () { var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', firstDay: 1, editable: false, selectable: true, eventSources: [ { url: "fetch-event.php", method: "GET", failure: function () { alert("There was an error fetching events."); } } ], select: function (selectionInfo) { var start = selectionInfo.startStr; var end = new Date(selectionInfo.end); end.setDate(end.getDate() - 1);
var formattedStart = new Date(start).toLocaleDateString("en-GB"); var formattedEnd = new Date(end).toLocaleDateString("en-GB");
var confirmMessage = "Do you want to request dates from " + formattedStart + " to " + formattedEnd + "?";
if (window.confirm(confirmMessage)) { var firstName = ""; var lastName = "";
$conn->close(); header('Content-Type: application/json'); echo json_encode($events ?: []); [/code] Wenn ich fetch-event.php +1 Tag hinzufüge, damit es für Februar funktioniert, ist das in Ordnung, aber dann sind die zukünftigen Monate immer noch 1 Tag kurz anstelle des Originals 2.
Kalenderverknüpfungen mit dem Android Studio-Emulator für Pixel 8 Tiramisu testen. Es wird erwartet, dass der Link die Google Kalender-Anwendung lädt und zum Hinzufügen eines Ereignisses auffordert,...
Ich habe React DatePicker und Fixed-Data-Table-2 für mein Projekt verwendet. Wenn ich den Kalender öffne, wird er hinter dem Tabellenkopf angezeigt. Hier ist der Code für die CSS-Datei:...
Ich habe nach einem Stil für Ereignisse in Fullcalendar aus einem JSON-Feed gesucht, bei dem ich verschiedenen Projekten unterschiedliche Farben zuweisen wollte. Ich habe mit einfachen eventSources...
Ich erhalte eine Fehlermeldung beim Versuch, Daten von meiner API herunterzuladen und im TableViewController anzuzeigen. Die Tabellenansicht ist leer. Ich verstehe nicht, was falsch ist....
Ich habe den folgenden Code, in dem ich kopiere und dann einige Dinge wie Folgendes im Textbereich einfüge. Ich habe es auf diese Weise eingerichtet, denn wenn ich die folgenden drei Zeilen einfüge,...