<?php
require_once '../db.php';
/** Required if not added then you may get CORS error in AJAX */
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Origin, Methods, Content-Type");
/** Necessary to let the other applications and software to know that your returning JSON data */
header('Content-Type: application/json; charset=UTF-8');
/** Only allow if POST request */
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
/** If you have any TOKEN or user validation you can do it here */
try {
/** Code to fetch list of states by state_id */
$stateId = isset($_POST['state_id']) ? $_POST['state_id'] : '';
if (empty($stateId)) {
throw new Exception('State field required');
}
$stateStmt = $pdo->prepare("SELECT `id`, `name` FROM `states` WHERE `id` = :state_id");
$stateStmt->execute([':state_id' => $stateId]);
$state = $stateStmt->fetchObject();
if (!$state) {
throw new Exception('State not found');
}
$cityStmt = $pdo->prepare("SELECT `id`, `name` FROM `cities` WHERE `state_id` = :state_id");
$cityStmt->execute([':state_id' => $stateId]);
$cities = $cityStmt->fetchAll(PDO::FETCH_OBJ);
http_response_code(200);
echo json_encode([
'status' => 'success',
'message' => 'Successfully fetch details',
'data' => [
'state' => $state,
'cities' => $cities
]
]);
exit;
} catch (Exception $e) {
http_response_code(400);
echo json_encode([
'status' => 'error',
'message' => 'Error in fetching state details',
'error' => $e->getMessage()
]);
exit;
}
}
/** If GET request to the API then return 405 (Method Not Supported) status code */
http_response_code(405);
echo json_encode([
'status' => 'error',
'message' => 'Method not supported',
]);
exit;
|