У меня есть страница со списком клиентов. Когда я открываю модальный режим, появляется эта опция для назначения драйвера, и есть перенаправление заголовка, которое работает правильно с сообщением об успехе. Все, что я хочу сделать, - это когда мы назначаем драйвер, драйвер показывает сообщение, а также загружает файл FPDF на сервер, чтобы я мог отправить его по электронной почте.
Я пытался добавить код PDF в IF (isset ($ result)) , но когда я запускаю его, он загружает PDF или отображает его, но так как перенаправление не работает, поэтому имя драйвера не изменяется (перед обновлением страницы), и сообщение об успехе не отображается
Мой код без PDF-кода:
<?php
require_once '../connection/connection.php';
header("Access-Control-Allow-Origin: *");
if (isset($_POST['assign-driver'])) {
if (empty($_POST['assignDriver'])) {
header("location:booking.php?failDriverAssign= Please select the driver!");
}
else {
$booking_id = $_POST['booking_id'];
$assignDriver = $_POST['assignDriver'];
$query = "UPDATE add_booking SET assigned_driver='$assignDriver' WHERE Booking_ID=$booking_id";
$result = mysqli_query($conn, $query);
if (isset($result)) {
header("location:booking.php?passDriverAssign= Driver has been assigned. Booking Confirmation has been sent to Driver and Customer!");
}
else {
header("location:booking.php?failDriverAssign= Something went wrong. Check back in few minutes!");
}
}
}
Мой код с кодом PDF:
<?php
require_once '../connection/connection.php';
header("Access-Control-Allow-Origin: *");
require ('FPDF/fpdf.php');
//A4 width: 219mm
//default margin: 10mm each side
//writable horizontal: 219-(10*2)=189mm
$sql = "SELECT * FROM add_booking INNER JOIN customers ON add_booking.customer_ID = customers.ID ORDER BY Booking_ID DESC";
$count = 1;
//Values I want to show in PDF
//Values I want to show in PDF
foreach ($conn->query($sql) as $row) {
$updatecount = $count++;
$first_name = $row[first_name];
$last_name = $row[last_name];
$email = $row[email];
}
//Values I want to show in PDF
//Values I want to show in PDF
if (isset($_POST['assign-driver'])) {
if (empty($_POST['assignDriver'])) {
header("location:booking.php?failDriverAssign= Please select the driver!");
}
else {
$booking_id = $_POST['booking_id'];
$assignDriver = $_POST['assignDriver'];
$query = "UPDATE add_booking SET assigned_driver='$assignDriver' WHERE Booking_ID=$booking_id";
$result = mysqli_query($conn, $query);
if (isset($result)) {
// PDF CODE
$pdf = new FPDF('P', 'mm', 'A4');
$pdf->AddPage();
//set font to arial, bold, 14pt
$pdf->SetFont('Arial', 'B', 14);
//Cell (width, height, text, border, end line, {align})
$pdf->Cell (130, 5, '', 1, 0);
$pdf->Cell (70, 5, '', 1, 0);
$pdf->Output();
// PDF CODE
header("location:booking.php?passDriverAssign= Driver has been assigned. Booking Confirmation has been sent to Driver and Customer!");
}
else {
header("location:booking.php?failDriverAssign= Something went wrong. Check back in few minutes!");
}
}
}
Когда пользователь назначает драйвер, он обновляет веб-страницу и показывает сообщение об успешном завершении, тогда PDF-файл должен быть загружен на сервер без вывода сообщений.