Fullcalendar wird nach Einfügen [Duplikat] nicht die richtigen Daten im Kalender angezeigt. [Duplikat]Php

PHP-Programmierer chatten hier
Guest
 Fullcalendar wird nach Einfügen [Duplikat] nicht die richtigen Daten im Kalender angezeigt. [Duplikat]

Post by Guest »

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: Select all

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post