glossyweb
@glossyweb
Mark marketing

Как сформировать вывод Ajax запроса правильно?

Есть выпадающий список 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" исходя из сохраненных данных.

у меня при обновлении страницы все выборы слетают, а сами опции генерируются в другом файле и я не могу вытянуть туда переменную юзера.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Ну по логике у вас должен быть код
$('#city-dropdown').on('change', function() {.....})
, в котором вы отправите на сервер все три выбранных значения, для сохранения в какой-нибудь Базе Данных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы