У меня есть этот цикл, который перебирает мою таблицу базы данных tvshows
, чтобы получить названия телешоу и вывести их на экран с радиовходом:
<div style="width: 200px;">
<div>
<?php
$query = "SELECT distinct(title), (id) from tvshows";
$featured = mysqli_query($conn,$query);
while ($row = mysqli_fetch_assoc($featured)) { ?>
<div class="list-group-item checkbox" style=" background-
color: #f4f4f4;">
<label ><input type="radio" name="re"
class="common_selector collection" style="" value="<?php
echo $row['title']; ?>" id='sale'> <?php echo
$row['title']; ?></label>
</div>
<?php
}
?>
</div>
</div>
Вот AJAX:
$("input:radio").change(function() {
var product_id = $(this).attr('id');
var coll = $(this).attr('value');
var action = "check";
if ($(this).is(":checked")) {
$.ajax({
url:"../PHP_Scripts/fetch_data.php",
method: "POST",
dataType: "json",
data:{
coll:coll, action:action, product_id:product_id
},
success:function(data){
$('#product_wrapper').html(data);
alert("success");
}
});
});
Это $("input:radio").change(function() {}
, это моя проблема.Подводя итог, почему эта проблема происходит: сценарий PHP_Scripts/fetch_data.php
активируется каждый раз, когда изменяется радиовход.Его функция - выводить продукты, на основе которых выбрана кнопка-переключатель.Это проблема, потому что PHP_Scripts/fetch_data.php
также содержит некоторый AJAX, который добавляет продукт в корзину, поэтому, когда изменяется радиовход, и вы пытаетесь добавить продукт в корзину, продукт добавляется в корзину столько же разкак вход был изменен.Поэтому, если вы проверяете радиовход 3 раза, а затем нажимаете кнопку, которая добавляет товар в корзину, он будет добавлен 3 раза.
Причина, по которой я не вставил каждую страницу, состоит в том, что проблема только в одномстрока: $("input:radio").change(function() {}
.Кто-нибудь знает альтернативу, которую я могу использовать для активации AJAX, когда, скажем, проверен определенный вход?