Puedo publicar con ajax, pero cuando quiero extraer datos sin actualizar la página, solo puedo hacerlo 2 veces, luego el botón pierde su función.
<div> <input type="hidden" name="producecode" class="pcode" value="{{per.produceCode}}" /> <input type="hidden" name="useremail" class="uponequantity" value="{{user.username}}" /> <button class="btn btn-sm btn-primary upoq"><i class="fa fa-plus"></i></button></div>y jquery
$.ajax({ type: "POST", url: "/uponequantity/", headers: { "X-CSRFToken": '{{csrf_token}}' }, data: { "producecode":$(this).parent().find(".pcode").val(), "useremail":$(".uponequantity").val(), }, success: function() { window.location.assign('/basket/'+"?b="+$(".uponequantity").val()); } }); /*$.ajax({ url:'/baskett/'+"?b="+$(".uponequantity").val(), headers: { "X-CSRFToken": '{{csrf_token}}' }, type:'POST', success:function(result){ $('.basket').html(result); } }); */ })Simplemente agregue otra línea para hacer referencia a su segunda entrada igual que la primera.
$(".up").click(function(){ $(".prdtd").find("input:first- child").attr("value"); $(".pcode").val() $(".uponequantity").val()//<-- new line for the second hidden value } -----------------------------------------
Actualizar:
-----------------------------------------
OP tiene varios botones con la misma clase, cada uno en su propio div y quiere acceder a los valores dentro de cada div.
Entonces, primero debe cambiar " pcode " de una identificación a una clase para obtener todas las instancias. ( id es para instancias únicas)
Después de eso, debe poder obtener el " pcode " y " uponequantity " que están asociados con ese botón y una forma de hacerlo es:
$(".up").click(function(){ $(this).parent().find(".pcode").val() $(this).parent().find(".uponequantity").val() } En pocas palabras, this palabra clave hace referencia al botón en el que se hizo clic.
Luego obtiene el elemento principal directo que tendría el botón y los valores ocultos como elementos secundarios.
Finalmente, obtienes a cada niño específico a través del comando de find y haces lo que quieras con ellos.
Si entiendo su pregunta correctamente, le gustaría obtener el valor de ambas entradas en su devolución de llamada.
Parece que escribiste mal pdcode en tu JavaScript.
¿Ayuda el siguiente fragmento de código?
$(".up").click(function() { const value1 = $(".pdcode").val(); const value2 = $(".uponequantity").val(); }