Есть выпадающий список Select2 выбора стран и городов путем ajax запроса:
<div class="form-group">
<label for="state">State</label>
<select name="state" class="select2 form-select" id="state-dropdown">
</select>
</div>
<div class="form-group">
<label for="city_name">City</label>
<select name="city_name" class="select2 form-select" id="city-dropdown">
</select>
</div>
Сам Ajax запрос:
$('#settings_country').on('change', function() {
var country_id = this.value;
$.ajax({
url: "states-by-country.php",
type: "POST",
data: {
country_id: country_id
},
cache: false,
success: function(result){
$("#state-dropdown").html(result);
$('#city-dropdown').html('<option value="">Select State First</option>');
}
});
});
$('#state-dropdown').on('change', function() {
var state_id = this.value;
$.ajax({
url: "cities-by-state.php",
type: "POST",
data: {
state_id: state_id
},
cache: false,
success: function(result){
$("#city-dropdown").html(result);
}
});
});
И файл php:
<?php
require_once "db.php";
if(!isset($_POST["country_id"])){
$result = mysqli_query($conn,"SELECT * FROM states order by name limit 5");
}else{
$country_id = $_POST["country_id"];
$result = mysqli_query($conn,"SELECT * FROM states where country_code LIKE '$country_id'");
}
?>
<option value="">Select State</option>
<?php
while($row = mysqli_fetch_array($result)) {
?>
<option value="<?php echo $row["id"];?>"><?php echo $row["name"];?></option>
<?php
}
?>
Выбор стран и городов работает отлично, но проблема в том что я не понимаю куда добавить атрибут для опции выбраной страны и города
selected="selected" исходя из сохраненных данных.
у меня при обновлении страницы все выборы слетают, а сами опции генерируются в другом файле и я не могу вытянуть туда переменную юзера.