AJAX - Enviar formulario con mismo id con ajax

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 5 puestos en AJAX (en relación al último mes)
Gráfica de AJAX

Enviar formulario con mismo id con ajax

Publicado por Luciano (3 intervenciones) el 17/04/2021 18:17:54
Hola, tengo un código que muestra distintos productos. Cada uno tiene un form id="agregar_carrito"
Con un botón que al ejecutar debe mandar el serialize del formulario agregar_carrito con el id="add_carrito".
Pero claro, como es un while, todos os formularios se llaman igual.
Entonces lo que quiero es identificar de alguna manera cada formulario sin tener que cambiar los id.
Por último, el ajax una vez que agrega al pedido, ejecuta un modal de pedido satisfactorio.
Podrán ayudarme?

El formulario:
1
2
3
4
5
6
7
8
9
10
11
<form action="#" id="agregar_carrito">
    <div class="stepper stepper-sm stepper-secondary">
        <input type="hidden" name="producto_id" value="1" />
        <a href="#" class="stepper-button stepper-down">-</a>
        <input type="text" class="form-control" value="0" min="0" disabled />
        <a href="#" class="stepper-button stepper-up">+</a>
    </div>
    <button type="submit" class="btn btn-primary btn-sm" id="add_carrito" data-toggle="modal">
      <ion-icon name="add-circle-outline"></ion-icon> Agregar a mi pedido
    </button>
</form>

El ajax:
1
2
3
4
5
6
7
8
9
10
11
12
$("#add_carrito").click(function(e) {
    var data = $("#agregar_carrito").serialize();
    $.ajax({
        data: data,
        cache: false,
        type: "post",
        url: "add-pedido.php",
        success: function(dataResult){
          $("#DialogIconedSuccess").modal("show");
        }
    });
});

El Modal:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div class="modal fade dialogbox" id="DialogIconedSuccess" data-backdrop="static" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-icon text-success">
                <ion-icon name="checkmark-circle"></ion-icon>
            </div>
            <div class="modal-header">
                <h5 class="modal-title">Agregado</h5>
            </div>
            <div class="modal-body">
                Agregado en tu pedido
            </div>
            <div class="modal-footer">
                <div class="btn-inline">
                    <a href="#" class="btn" data-dismiss="modal">CERRAR</a>
                </div>
            </div>
        </div>
    </div>
</div>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 87
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Enviar formulario con mismo id con ajax

Publicado por joel (30 intervenciones) el 18/04/2021 08:56:09
Hola Luciano, primeramente indicarte, que no debería haber ningún id repetido en ninguna pagina, ya que si los hay, solo vale el ultimo, por lo que mejor que no haya ninguno o que tengan diferente valor!!!

tu solucion pasa por poner un estilo y crear el evento sobre ese estilo... de esta manera te servira para todos los formularios que quieras... algo así:
1
<form action="#" class="agregar_carrito">

y para el ajax:
1
2
3
$(".add_carrito").click(function(e) {
    var data = $(this).serialize();
    ...

Puedes probarlo y comentar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 5 puestos en AJAX (en relación al último mes)
Gráfica de AJAX

Enviar formulario con mismo id con ajax

Publicado por Luciano (3 intervenciones) el 18/04/2021 15:42:10
Si, lo probé con el estilo. Pero al cambiar a estilo, no se ejecuta el modal al volver.
Lo que no habia usado era this... creo que puede haber sido eso! Mil gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(".add_carrito").click(function(e) {
    var data = $(this).serialize();
    $.ajax({
 
        data: data,
        cache: false,
        type: "post",
        url: "add-pedido.php",
        success: function(dataResult){
          $("#DialogIconedSuccess").modal("show");
 
        }
 
    });
 
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 5 puestos en AJAX (en relación al último mes)
Gráfica de AJAX

Enviar formulario con mismo id con ajax

Publicado por Luciano (3 intervenciones) el 18/04/2021 16:42:13
He cambiado y si bien funciona. El cartel Modal no reacciona, la pagina primero se recarga y despues empieza a mostrar los modals
Formulario
1
2
3
4
5
6
7
8
9
10
<form action="#" class="agregar_carrito">
  <div class="cart-item-footer">
      <div class="stepper stepper-sm stepper-secondary">
          <a href="#" class="stepper-button stepper-down">-</a>
          <input type="text" class="form-control" value="0" min="0" disabled />
          <a href="#" class="stepper-button stepper-up">+</a>
      </div>
      <button type="submit" class="add_carrito btn btn-primary btn-sm" data-toggle="modal"><ion-icon name="add-circle-outline"></ion-icon> Agregar a mi pedido</button>
  </div>
</form>

Ajax
1
2
3
4
5
6
7
8
9
10
11
12
$(".add_carrito").click(function(e) {
    var data = $(this).serialize();
    $.ajax({
        data: data,
        cache: false,
        type: "post",
        url: "add-pedido.php",
        success: function(dataResult){
          $("#DialogIconedSuccess").modal("show");
        }
    });
});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 87
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Enviar formulario con mismo id con ajax

Publicado por joel (30 intervenciones) el 19/04/2021 07:47:45
Hola Luciano, no me queda muy claro el problema que estas teniendo con el modal... se muestra una vez cargada la pagina?

Entiendo que si eliminas las lineas del ajax se sigue cargando el modal, verdad?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar