50 lines
2.5 KiB
JavaScript
50 lines
2.5 KiB
JavaScript
document.addEventListener('DOMContentLoaded', function() {
|
|
|
|
const pnrForm = document.getElementById('pnr-form');
|
|
|
|
if (pnrForm) {
|
|
pnrForm.addEventListener('submit', function(event) {
|
|
event.preventDefault();
|
|
const pnrNumber = document.getElementById('pnr-number').value;
|
|
const resultDiv = document.getElementById('pnr-result');
|
|
|
|
resultDiv.innerHTML = '<div class="text-center"><div class="spinner-border text-primary" role="status"><span class="visually-hidden">Loading...</span></div></div>';
|
|
|
|
fetch(`api/pnr_handler.php?pnr=${pnrNumber}`)
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if (data.ResponseCode == 200) {
|
|
let passengerHtml = '';
|
|
data.Passengers.forEach((p, index) => {
|
|
passengerHtml += `<tr>
|
|
<td>${index + 1}</td>
|
|
<td>${p.BookingStatus}</td>
|
|
<td><span class="badge bg-success">${p.CurrentStatus}</span></td>
|
|
</tr>`;
|
|
});
|
|
|
|
resultDiv.innerHTML = `
|
|
<h5 class="text-primary">${data.TrainName} (${data.TrainNo})</h5>
|
|
<p><strong>From:</strong> ${data.From} <strong>To:</strong> ${data.To} <strong>Date:</strong> ${data.Doj}</p>
|
|
<table class="table table-dark table-bordered">
|
|
<thead>
|
|
<tr><th>#</th><th>Booking Status</th><th>Current Status</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
${passengerHtml}
|
|
</tbody>
|
|
</table>
|
|
<p class="text-center mt-3"><strong class="text-warning">Charting Status:</strong> ${data.ChartingStatus}</p>
|
|
`;
|
|
} else {
|
|
resultDiv.innerHTML = `<div class="alert alert-danger">${data.Message || 'Could not fetch PNR status. Please check the PNR and try again.'}</div>`;
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('Error:', error);
|
|
resultDiv.innerHTML = `<div class="alert alert-danger">An error occurred while fetching data.</div>`;
|
|
});
|
|
});
|
|
}
|
|
});
|