jQuery Ajax, select и append
Используется jQuery Ajax. Отправляем ajax-запрос:
$.ajax({
type: "POST",
url: "ajax.php",
data: {'add_payment': '1', 'get_teams': '1', 'tournament_id': tournament_id},
success: function (response) {
$('#team_select').append(response);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
Обработчик ajax возвращает текст типа
<option value="2">Майами</option>
<option value="3">Техас</option>
Опционы не добавляются в <select id="team_select"></select>
Почему?
Ответы (1 шт):
Автор решения: 隼SAPSAN
Php
→ Ссылка
Думаю на примере будет понятно!
$('button').on('click', function()
{
$.ajax({
type: "POST",
url: window.location.href, //"ajax.php",
data: {'add_payment': 1, 'get_teams': 1, 'tournament_id': 1},
success: function (response)
{
if(response)
{
let data = jQuery.parseJSON(response.trim());
data.forEach(function(item, i)
{
$("<option/>", {text: item.text, value: item.value, selected : item.selected}).appendTo('#select');
});
}
},
error: function (XMLHttpRequest, textStatus, errorThrown)
{
alert(errorThrown);
}
});
})
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script>
</head>
<body>
<button>Send AJAX</button>
<select id="select">
<option value="0">Текст 0</option>
</select>
</body>
</html>
<?php if(isset($_POST['add_payment'])){
$_array =
[
["value" => 1, "text" => "Текст 1", "selected" => false],
["value" => 2, "text" => "Текст 2", "selected" => false],
["value" => 3, "text" => "Текст 3", "selected" => true],
["value" => 4, "text" => "Текст 4", "selected" => false]
];
exit(json_encode($_array));}?>