new ExtJsonDecoder(true)]); // $filtered_cities = array(); // foreach ($cities as $name => $data) { // if ($data['country_code'] == $alpha_2_code) { // $filtered_cities[] = array( // 'name' => $data['name'], // /*'country_name'=>$data['country_name'],*/ // 'latitude' => $data['latitude'], // 'longitude' => $data['longitude'], // ); // } // } // echo json_encode($filtered_cities); // break; // case 'city': // $cities = Items::fromFile('cities.json', ['decoder' => new ExtJsonDecoder(true)]); // $filtered_cities = array(); // foreach ($cities as $name => $data) { // if ($data['country_code'] == $alpha_2_code) { // $filtered_cities[] = array( // 'name' => $data['name'], // /*'country_name'=>$data['country_name'],*/ // 'latitude' => $data['latitude'], // 'longitude' => $data['longitude'], // ); // } // } // echo json_encode($filtered_cities); // break; // } // } else { // //for specific country only // } // } if ((!empty($_REQUEST['data']) && trim($_REQUEST['data']) == 'cities') && !empty($_REQUEST['state_id'])) { $state_id = trim($_REQUEST['state_id']); $cities = Items::fromFile('states+cities.json', ['decoder' => new ExtJsonDecoder(true)]); foreach ($cities as $name => $data) { if ($data['id'] == $state_id) { echo json_encode($data['cities']); exit; } } } else if ((!empty($_REQUEST['data']) && trim($_REQUEST['data']) == 'states') && !empty($_REQUEST['country'])) { $alpha_2_code = trim($_REQUEST['country']); $states = Items::fromFile('countries+states.json', ['decoder' => new ExtJsonDecoder(true)]); foreach ($states as $name => $data) { if ($data['iso2'] == $alpha_2_code) { echo json_encode($data['states']); exit; } } } else if (!empty($_REQUEST['country'])) { $alpha_2_code = trim($_REQUEST['country']); $countries = Items::fromFile('countries.json', ['decoder' => new ExtJsonDecoder(true)]); foreach ($countries as $name => $data) { if ($data['iso2'] == $alpha_2_code) { echo json_encode($data); exit; } } } else { //for all countries include 'countries.json'; } /* country list counrty data state list (require country) city list (require state) */