Prova una cosa così:
L'id degli elementi html DEVE essere univoco a livello di pagiona.codice:<div class="row"> <?php foreach ($elencolibri as $libro) : ?> <div class="col-md-3"> <!-- card --> <div class="card border-primary mb-3"> <div class="card-header"> <h5id="titolo"><?= $libro['titolo']; ?></h5> </div> <div class="card-body"> <p><img class="card-img" id="immagine" src="../img/cover/<?= $libro['titolo']; ?>.jpg" alt=""></p> <!-- opzioni disponibili solo al cliente--> <?php if ($_SESSION['seller'] === 'no') : ?> <span id="prezzo"><?= $libro['prezzo']; ?>€ </span> <input type="number" id="qnt-<?= $libro['id_libro']; ?>"> <a type="button" class="add-cart" data-id="<?= $libro['id_libro']; ?>"> <i class="fa-solid fa-cart-shopping"></i> </a> <a type="button" class="add-fav"> <i class="fa-solid fa-heart"></i> </a> <?php endif; ?> <p><a id="dettagli" class="btn btn-warning" href="./scheda_libro.php?id=<?= $libro['id_libro']; ?>" role="button"> Dettagli </a></p> </div> <!-- fine card body --> </div> <!-- fine card --> </div> <!-- fine col-md-3 --> <?php endforeach; ?> </div> <!-- fine row --> <script> $(".add-cart").click(function(event) { event.preventDefault(); var productId = $(this).data('id'); var prod_qnt = $('#qnt-' + productId).val(); console.log(prod_qnt); console.log(prod_id); $.ajax({ url: "function_cart_fav.php", dataType: 'text', method: 'POST', data: { cart: 1, prod_id: prod_id, prod_qnt: prod_qnt, // user_id: user_id // Inutile, lo hai già in sessione }, success: function(response) { if (response.indexOf('success') > 0) { $("#success_cart").html('Prodotto aggiunto al carrello.'); } else { $("#alert_cart").html(response); } } }); }); </script>

Rispondi quotando
