Наличие этой части в форме HTML, работа в PHP для серверной части. Требуется, чтобы пользователь выбрал страну, и в зависимости от страны список городов уточняется только для городов данной страны. AJAX обновляет и передает переменные, но функция PHP не запускает:
// PHP part
$action = "all";
if (isset($_POST['action'])) {
$action = $_POST['action'];
}
if (isset($_GET['action'])) {
$action = $_GET['action'];
}
<label class="form-text" id="further-details-labels" for="country">Country:</label>
<select onchange="getCountry(this.value)" class="form-control country" name="country" id="country">
<?php
echo "<option value=\"\">Please select Country</option>";
foreach ($model->getCountry() AS $countries => $country) {
echo "<option value={$country['country_code']}>{$country['country_name']}</option>";
}
?>
</select>
<label class="form-text" id="further-details-labels" for="city">City:</label>
<select class="form-control" name="city" id="further-details-input">
<option value="">Please select City</option>
<?php
switch ($action) {
case "all":
$model = new model();
foreach ($model->getCity() AS $cities => $city) {
echo "<option value={$city['city_code']}>{$city['city_name']}</option>";
}
break;
case 'country':
$country = $_POST['country'];
$model = new model();
foreach ($model->getCityByCountry($country) as $cities => $city) {
echo "<option value={$city['city_code']}>{$city['city_name']}</option>";
}
break;// to continue switch statement and add ajax calls
}
?>
</select>
AJAX
<script type="text/javascript">
// TODO fetching script for onchange
function getCountry(country_code) {
if (window.XMLHttpRequest) {
var xhr = new XMLHttpRequest();
} else {
var xhr = new ActiveObject("Microsoft.XMLHTTP");
}
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200) {
var country = {"country": country_code};
console.log(country);
var test = document.getElementById("test");
// test.innerHTML=this.responseText;
}
};
xhr.open("POST","details.php", true);
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
xhr.send("action=country&country="+country);
};
</script>
Любое предложение о том, как их соединить, чтобы сделать опции выбораизменить в зависимости от сработавшей функции, пожалуйста?