У меня есть этот цикл, который проходит через мою таблицу базы данных tvshows
чтобы получить названия шоу T.V и вывести их на экран с радиовходом:
<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, когда, скажем, проверен определенный вход?
Задача ещё не решена.
Других решений пока нет …