Estoy trabajando en una función de carrito de compras, pero quiero enviar los identificadores de productos a esta parte de javascript.
$(".qtybutton").on("click", function(){ var $button = $(this); var oldValue = $button.parent().find("input").val(); var id = $button.parent().find("key").val(); if ($button.text() === "+") { var newVal = parseFloat(oldValue) + 1; $.post("cart_session.php", {action:'call_this', newVal: newVal }, function(data) { $('#results').html(data); }); }
Esta es la parte html.
<div class="dec qtybutton">-</div> <form method="POST"> <input class="cart-plus-minus-box" type="integer" value="2" disabled> </form> <div class="inc qtybutton">+</div>
Quiero pasar el argumento con php ex:- function(<?= $key?>)
, quiero saber cómo hago esto.
Sugeriría poner la identificación del producto en el campo de formulario como un atributo de datos. De esa manera, siempre puede asociar la identificación del producto con la cantidad.
$(".qtybutton").on("click", function() { let $button = $(this), $inc = $button.closest('.q-cont').find("input") let newVal = Math.max(0,+$inc.val() + +$button.data('inc')) $inc.val(newVal); let id = $inc.data('productid'); console.log('newVal:', $inc.val(), 'id:', id) });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class='q-cont'> <div class="dec qtybutton" data-inc="-1">-</div> <form method="POST"> <input class="cart-plus-minus-box" data-productid="5" type="integer" value="2" disabled> </form> <div class="inc qtybutton" data-inc="1">+</div> </div>