Почему ajax вызывается только при нажатии на первую кнопку?
У меня есть вот такой php код,
if (isset($itm)) {
foreach ($invent as $row) {
$skin_id = $row["id"];
$skin_img = $row["img"];
$skin_tittle = $row["tittle"];
$skin_name = $row["name"];
$skin_cost = $row["cost"];
?>
<div class="menu__skins-items">
<div class="menu__skins-img_box">
<img src="https://" width="-1" height="-1" alt = "false|false"/>">
</div>
<input type="button" id="sell" class="menu__skins-sell" value="Продать">
<input type="button" id="remove" class="menu__skins-remove" value="Вывести">
</div>
<?php
};
} else { ?>
<div class="none_skin__box">
<a class="none_skin__link" href="/index.php">Предметов нет</a>
</div>
<?php } ?>
который создаёт много кнопок:
НО ajax код срабатывает только при нажатии на первую кнопку:
$("#sell").click(function () {
$.ajax({
type: "POST",
url: "ajax_profile.php",
data: {
skin_img: 'Butterfly/Dragon_Glass.webp',
skin_cost: '2',
},
success: function (result) {
$("#menu_skin").html(result);
},
});
}); Спецификацию html знать надо
id - это уникальный идентификатор. Заранее предполагается, что элемент с заданным id на странице один
Не по теме вопроса, но зачем тебе на сервер передавать ссылку на картинку и цену?
От картинки какой смысл? Передаваться должны те данные, которые заданы пользователем. То есть как минимум идентификатор скина + количество. Цена же берётся на стороне сервера, так как от пользователя она не зависит.
Более того, таким образом пользователь может задать свою цену через консоль и купить скин за копейки или продать в тридорого.
учи матчасть
Потому что id уникален, и $(“#sell”) выбирает только один элемент.
Чтобы код срабатывал на всех, нужно выбирать по классу: $(“.menu__skins-sell”).
Id у кнопок нужно сделать разным или вообще не задавать.