Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
¿Hay alguna forma de enviar varios formularios con un solo botón y valores ocultos únicos?

Nota: he visto algunas publicaciones que son bastante similares a las mías, pero no creo que esas soluciones ayuden en mi caso de uso. Mi sitio web (creado con Django) tiene una página para cobrar los pagos de las cuotas.

Hay una página por familia, en la que habrá múltiples cuotas a pagar por cada miembro. Actualmente, tengo un botón de envío para cada vencimiento, como puede ver en el código a continuación.

 {% for due in dues %} <tr> <td>{{due.0}}</td> <td>{{due.1}}</td> <td>{{ due.3}}</td> <td>{{ due.4 }}</td> <td>{{ due.5 }}</td> <td><form action="/dues/?family-dues={{ familyprofile }}" method="POST" id= "dues-payment"> {% csrf_token %} <input type="text" placeholder="Enter Amount" name="amount"> <input type="hidden" value="{{due.2}}" name="due-id"> <input type="hidden" value="{{due.0}}" name="member-id"> <input type="hidden" value="{{duefamily.0}}" name="family-id"> <button id="submit-payment">Pay</button></form></td> </tr> {% endfor %}

El problema con esto es que solo se puede hacer un pago a la vez. ¿Hay alguna manera en la que pueda enviar todos los formularios de una sola vez? ¿Para que el cajero pueda simplemente ingresar los pagos apropiados en cada cuadro de texto y cuando se envíen todos los valores del cuadro de texto (cantidad pagada) junto con la identificación adeudada se devuelvan de una sola vez?

Escenario actual

 Due ID 1 textbox(Value is 40) Pay Button Due ID 2 textbox(Value is 80) Pay Button Due ID 3 textbox(Value is 100) Pay Button

Si una persona llega a pagar un total de $220 (como se muestra arriba) en tres categorías de vencimiento de pago, se debe presionar el botón de pago tres veces. ¿Hay alguna manera de que lo anterior se pueda cambiar al siguiente escenario?

Escenario deseado

 Due ID 1 textbox(Value is 40) Due ID 2 textbox(Value is 80) Due ID 3 textbox(Value is 100) Pay Button

Estoy abierto a todas las ideas que puedan ayudarme a resolver mi problema. Gracias por adelantado:)

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El enfoque más simple sería hacer que toda la tabla fuera una sola forma.

 <form action="/dues/?family-dues={{ familyprofile }}" method="POST" id= "dues-payment"> {% csrf_token %} <table> {% for due in dues %} <tr> <td>{{ due.0 }}</td> <td>{{ due.1 }}</td> <td>{{ due.3 }}</td> <td>{{ due.4 }}</td> <td>{{ due.5 }}</td> <td> <input type="text" placeholder="Enter Amount" name="due-{{ due.2 }}-amount"> </td> </tr> {% endfor %} </table> <input type="hidden" value="{{ ?? }}" name="member-id"> <input type="hidden" value="{{ duefamily.0 }}" name="family-id"> <button id="submit-payment">Pay</button> </form>

Tenga en cuenta que agregué los ID debidos a los nombres de los campos que se muestran en cada línea. Ahora tendrá que hacer un poco de análisis de cadenas en el lado de Django para unirlas.

También es posible que desee consultar Django Formsets , que le permite definir todo el formulario en Python y simplemente llamar a form.as_table() en la plantilla. También tiene soporte para formularios anidados como este.

Editar

Creo que también debería poder hacer la cantidad de entradas como esta y luego obtener listas en Django, pero desafortunadamente no puedo probar si funciona. Obtendría uno llamado due-id y otro llamado due-amount , y luego confiaría en los valores para cada coincidencia de índice.

 <td> <input type="text" placeholder="Enter Amount" name="due-amount[]"> <input type="hidden" value={{ due.2 }} name="due-id[]"> </td>
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda