?
| Path : /home/u949514618/domains/drpktiwari.com/public_html/admin/ |
| Current File : /home/u949514618/domains/drpktiwari.com/public_html/admin/city.php |
<?php
// Start the session to check if the user is logged in
session_start();
// Check if the user is logged in
if (!isset($_SESSION['user_id'])) {
// If not logged in, redirect to login page
header("Location: login.php");
exit();
}
// If logged in, proceed with the rest of the page
include_once('db.php');
?>
<!DOCTYPE html>
<html
lang="en"
class="light-style layout-menu-fixed"
dir="ltr"
data-theme="theme-default"
data-assets-path="../backend/assets/"
data-template="vertical-menu-template-free"
>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"
/>
<title>Dashboard - Made By Ajay Singh Rathore (+91 9031351333)</title>
<meta name="description" content="" />
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="../backend/assets/img/brand/favicon.png" />
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="../backend/assets/vendor/fonts/boxicons.css" />
<!-- Core CSS -->
<link rel="stylesheet" href="../backend/assets/vendor/css/core.css" class="template-customizer-core-css" />
<link rel="stylesheet" href="../backend/assets/vendor/css/theme-default.css" class="template-customizer-theme-css" />
<link rel="stylesheet" href="../backend/assets/css/demo.css" />
<!-- Vendors CSS -->
<link rel="stylesheet" href="../backend/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.css" />
<link rel="stylesheet" href="../backend/assets/vendor/libs/apex-charts/apex-charts.css" />
<!-- Page CSS -->
<!-- Helpers -->
<script src="../backend/assets/vendor/js/helpers.js"></script>
<!--! Template customizer & Theme config files MUST be included after core stylesheets and helpers.js in the <head> section -->
<!--? Config: Mandatory theme config file contain global vars & default theme options, Set your preferred theme option in this file. -->
<script src="../backend/assets/js/config.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
</head>
<body>
<!-- Layout wrapper -->
<div class="layout-wrapper layout-content-navbar">
<div class="layout-container">
<!-- Menu -->
<?php include_once('include/dash_sidebar.php'); ?>
<!-- / Menu -->
<!-- Layout container -->
<div class="layout-page">
<!-- Navbar -->
<?php include_once('include/nav.php'); ?>
<!-- Content wrapper -->
<div class="content-wrapper">
<!-- Content -->
<?php
// Handle Insert for City
if (isset($_POST['add_city'])) {
$country_id = $_POST['country_id'];
$state_id = $_POST['state_id'];
$city_name = $_POST['city_name'];
$query = "INSERT INTO city (country_id, state_id, city_name) VALUES ('$country_id', '$state_id', '$city_name')";
if ($conn->query($query) === TRUE) {
echo "<script>
Swal.fire('Success', 'City added successfully!', 'success')
.then(() => { window.location.href = 'city.php'; });
</script>";
} else {
echo "Error: " . $query . "<br>" . $conn->error;
}
}
// Handle Update for City
if (isset($_POST['update_city'])) {
$id = $_POST['id'];
$state_id = $_POST['state_id'];
$city_name = $_POST['city_name'];
$query = "UPDATE city SET state_id='$state_id', city_name='$city_name' WHERE id=$id";
if ($conn->query($query) === TRUE) {
echo "<script>
Swal.fire('Success', 'City updated successfully!', 'success')
.then(() => { window.location.href = 'city.php'; });
</script>";
} else {
echo "Error: " . $query . "<br>" . $conn->error;
}
}
// Handle Delete for City
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
$query = "DELETE FROM city WHERE id=$id";
if ($conn->query($query) === TRUE) {
echo "<script>
Swal.fire('Deleted', 'City deleted successfully!', 'success')
.then(() => { window.location.href = 'city.php'; });
</script>";
} else {
echo "Error: " . $query . "<br>" . $conn->error;
}
}
?>
<div class="container-xxl flex-grow-1 container-p-y">
<h4 class="fw-bold py-3 mb-4"><span class="text-muted fw-light">State /</span> City</h4>
<!-- Add City Form -->
<form id="addCityForm" method="POST" class="mb-4">
<div class="mb-3">
<label for="country_id" class="form-label">Select Country</label>
<select class="form-control" id="country_id" name="country_id" required>
<option value="" disabled selected>Select Country</option>
<?php
$countries = $conn->query("SELECT * FROM country");
while ($country = $countries->fetch_assoc()) {
echo "<option value='{$country['id']}'>{$country['country_name']}</option>";
}
?>
</select>
</div>
<div class="mb-3">
<label for="state_id" class="form-label">Select State</label>
<select class="form-control" id="state_id" name="state_id" required>
<option value="" disabled selected>Select State</option>
<?php
$states = $conn->query("SELECT * FROM state");
while ($state = $states->fetch_assoc()) {
echo "<option value='{$state['id']}'>{$state['state_name']}</option>";
}
?>
</select>
</div>
<div class="mb-3">
<label for="city_name" class="form-label">City Name</label>
<input type="text" class="form-control" id="city_name" name="city_name" required>
</div>
<button type="submit" name="add_city" class="btn btn-primary">Add City</button>
</form>
<!-- City List -->
<h3>City List</h3>
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Country</th>
<th>State</th>
<th>City</th>
<th>Actions</th>
</tr>
</thead>
<tbody id="cityTableBody">
<?php
// Pagination Configuration for Cities
$limit = 10; // Number of records per page
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $limit;
// Count total records for cities
$total_result = $conn->query("SELECT COUNT(*) AS total FROM city");
$total = $total_result->fetch_assoc()['total'];
$total_pages = ceil($total / $limit);
$result = $conn->query("
SELECT
city.id,
city.city_name,
state.state_name,
country.country_name
FROM city
JOIN state ON city.state_id = state.id
JOIN country ON city.country_id = country.id
LIMIT $start, $limit
");
while ($row = $result->fetch_assoc()) {
echo "<tr>
<td>{$row['id']}</td>
<td>{$row['country_name']}</td>
<td>{$row['state_name']}</td>
<td>{$row['city_name']}</td>
<td>
<button class='btn btn-warning btn-sm'
onclick='editCity({$row['id']}, \"{$row['city_name']}\", \"{$row['state_name']}\", \"{$row['country_name']}\")'>Edit</button>
<a href='?delete={$row['id']}' class='btn btn-danger btn-sm'>Delete</a>
</td>
</tr>";
}
?>
</tbody>
</table>
<!-- Pagination -->
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
<?php if ($page > 1): ?>
<li class="page-item"><a class="page-link" href="?page=<?php echo $page - 1; ?>">Previous</a></li>
<?php endif; ?>
<?php for ($i = 1; $i <= $total_pages; $i++): ?>
<li class="page-item <?php echo $i == $page ? 'active' : ''; ?>">
<a class="page-link" href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
</li>
<?php endfor; ?>
<?php if ($page < $total_pages): ?>
<li class="page-item"><a class="page-link" href="?page=<?php echo $page + 1; ?>">Next</a></li>
<?php endif; ?>
</ul>
</nav>
</div>
<!-- Update City Modal -->
<!-- Update City Modal -->
<div class="modal" id="editModal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<form method="POST">
<div class="modal-header">
<h5 class="modal-title">Edit City</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<input type="hidden" id="edit_id" name="id">
<div class="mb-3">
<label for="edit_country_id" class="form-label">Select Country</label>
<select class="form-control" id="edit_country_id" name="country_id" required>
<?php
$countries = $conn->query("SELECT * FROM country");
while ($country = $countries->fetch_assoc()) {
echo "<option value='{$country['id']}'>{$country['country_name']}</option>";
}
?>
</select>
</div>
<div class="mb-3">
<label for="edit_state_id" class="form-label">Select State</label>
<select class="form-control" id="edit_state_id" name="state_id" required>
<?php
$states = $conn->query("SELECT * FROM state");
while ($state = $states->fetch_assoc()) {
echo "<option value='{$state['id']}'>{$state['state_name']}</option>";
}
?>
</select>
</div>
<div class="mb-3">
<label for="edit_city_name" class="form-label">City Name</label>
<input type="text" class="form-control" id="edit_city_name" name="city_name" required>
</div>
</div>
<div class="modal-footer">
<button type="submit" name="update_city" class="btn btn-success">Update</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- / Content -->
<!-- Footer -->
<footer class="content-footer footer bg-footer-theme">
<div class="container-xxl d-flex flex-wrap justify-content-between py-2 flex-md-row flex-column">
<div class="mb-2 mb-md-0">
©
<script>
document.write(new Date().getFullYear());
</script>
, made with ❤️ by
<a href="#" target="_blank" class="footer-link fw-bolder">Made By Ajay Singh Rathore (+91 9031351333)</a>
</div>
<div>
<a href="#" class="footer-link me-4" target="_blank">Privacy Policy</a>
<a href="#" target="_blank" class="footer-link me-4">Terms & Condition</a>
</div>
</div>
</footer>
<!-- / Footer -->
<div class="content-backdrop fade"></div>
</div>
<!-- Content wrapper -->
</div>
<!-- / Layout page -->
</div>
<!-- Overlay -->
<div class="layout-overlay layout-menu-toggle"></div>
</div>
<!-- / Layout wrapper -->
<!-- Core JS -->
<!-- build:js assets/vendor/js/core.js -->
<script src="../backend/assets/vendor/libs/jquery/jquery.js"></script>
<script src="../backend/assets/vendor/libs/popper/popper.js"></script>
<script src="../backend/assets/vendor/js/bootstrap.js"></script>
<script src="../backend/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js"></script>
<script src="../backend/assets/vendor/js/menu.js"></script>
<!-- endbuild -->
<!-- Vendors JS -->
<script src="../backend/assets/vendor/libs/apex-charts/apexcharts.js"></script>
<!-- Main JS -->
<script src="../backend/assets/js/main.js"></script>
<!-- Page JS -->
<script src="../backend/assets/js/dashboards-analytics.js"></script>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script>
$(document).ready(function() {
// Open the profile modal and fetch data
$('#myProfileLink').on('click', function() {
$.ajax({
url: 'fetch_profile_data.php', // PHP file to fetch user data
type: 'GET',
success: function(response) {
let data = JSON.parse(response);
if (data) {
// Populate modal fields with data
$('#username').val(data.username);
$('#email').val(data.email);
$('#org_name').val(data.org_name);
$('#phone').val(data.phone);
$('#address').val(data.address);
$('#state').val(data.state);
$('#zipcode').val(data.zipcode);
$('#country').val(data.country);
}
$('#profileModal').modal('show'); // Show the modal
}
});
});
});
</script>
<script>
$('#updateProfile').on('click', function() {
let orgName = $('#org_name').val();
let phone = $('#phone').val();
let address = $('#address').val();
let state = $('#state').val();
let zipcode = $('#zipcode').val();
$.ajax({
url: 'update_profile.php', // PHP file to update user data
type: 'POST',
data: {
org_name: orgName,
phone: phone,
address: address,
state: state,
zipcode: zipcode
},
success: function(response) {
if (response == 'success') {
Swal.fire({
title: 'Success',
text: 'Your profile has been updated.',
icon: 'success',
confirmButtonText: 'OK'
});
$('#exLargeModal').modal('hide'); // Close the modal
} else {
Swal.fire({
title: 'Error',
text: 'There was an issue updating your profile.',
icon: 'error',
confirmButtonText: 'OK'
});
}
}
});
});
</script>
<script>
function editCity(id, city_name, state_name, country_name) {
document.getElementById('edit_id').value = id;
document.getElementById('edit_city_name').value = city_name;
const countryDropdown = document.getElementById('edit_country_id');
for (let i = 0; i < countryDropdown.options.length; i++) {
if (countryDropdown.options[i].text === country_name) {
countryDropdown.selectedIndex = i;
break;
}
}
const stateDropdown = document.getElementById('edit_state_id');
for (let i = 0; i < stateDropdown.options.length; i++) {
if (stateDropdown.options[i].text === state_name) {
stateDropdown.selectedIndex = i;
break;
}
}
new bootstrap.Modal(document.getElementById('editModal')).show();
}
</script>
</body>
</html>