entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Problema con evento delegado en datatable

Tengo un datatable subido con productos, a este le agrego un botton (Agregar) dentro de cada <td> de la tabla, el problema es el siguiente. Cuando le doy click al boton Agregar, me pone mal los productos es decir, me pone 1 producto despues 2 despues 3 despues 4, asi sucesivamente con todos los productos. Si alguno puede ver el error de codigo donde esta se lo agradeceria! les dejo debajo el codigo.

<table id="sale" width="100%" cellspacing="0">
                            <thead>

                                <tr>
                                   <th>Comprar</th>
                                   <th>Imágen</th>
                                   <th>Codigo</th>
                                   <th>Categoria</th>
                                   <th>Marca</th>
                                   <th>Descripción</th>
                                   <th>Precio</th>
                                   <th> ** </th>

                                </tr>

                            </thead>

                                </tr>
                            </tfoot>
                        <tbody>

                                <?php

    // recorre el array con el contador para mostrar todos
    // los productos activados
    $i=0;
    while ($i < 20){
        include 'Productos.php';
    foreach($data as $k => $valor){
        if(($valor['publicaecommerce'] == 1)  )
            {
            if(($valor['tipodeproducto'] == 'MINORISTA'))   {
                        if (($valor['activo'] == 1)){ 
    ?>  
                            <tr>    
                                    <td><button class="btn btn-danger my-cart-btn" data-id="<?php echo $valor['codigo'];?>" data-name="<?php echo $valor['descripcion'];?>" data-summary="summary 1" data-price="<?php echo ceil($valor['precio1']);?>" data-quantity="1" data-image="<?php echo $valor['foto'];?>"><img src="resources/images/carrito.png"></button>

                                    </td>   
                                    <td><a href="#0" onclick="window.open('<?php if(empty($valor['foto']))
                                    echo 'img/nodis.jpg';
                                    else
                                        echo $valor['foto']; ?>','TITULO','width =550,height=400');"><img src="<?php if(empty($valor['foto']))
                                    echo 'img/nodis.jpg';
                                    else
                                        echo $valor['foto'];

                                    ?>" border='0' width='50' height='50'></a> </td>
                                    <td><?php echo $valor['codigo']; ?> <input type="hidden" name="product_code" value="<?php echo $valor ['codigo']?>"></input></td>
                                    <td><?php echo $valor['familia'] ;?></td>
                                    <td><?php echo $valor['marca']; ?></td>
                                    <td><?php echo $valor['descripcion'] ;?> <input type="hidden" name="product_name" value="<?php echo $valor ['descripcion']?>"></input></td>
                                    <td><?php 
                                            if ($valor['precio1'] <= 0)
                                            echo "Sin disponibilidad";
                                                else{ echo '$';
                                                echo ceil($valor['precio1']);} ?> <input type="hidden" name="product_price" value="<?php echo $valor ['precio1']?>"></input></td>
                                    <td><?php if ($valor['uso'] == 'SE FACTURA')
                                            {  echo $valor['poriva'];echo '% ';} ?></td>

    </tr>       <?php   $i++;}
    }}}

                    }?>
                    </tbody>

                        </table>
$(document).on('click',function () {
    var goToCartIcon = function($addTocartBtn){
    var $cartIcon = $(".my-cart-icon");
    var $image = $('<img width="30px" height="30px" src="' + $addTocartBtn.data("image") + '">').css({"position": "fixed", "z-index": "999"});
    $addTocartBtn.prepend($image);
    var position = $cartIcon.position();
    $image.animate({
      top: position.top,
      left: position.left
    }, 500 , "linear", function() {
      $image.remove();
    });
  }

  $('.my-cart-btn').myCart({
    classCartIcon: 'my-cart-icon',
    classCartBadge: 'my-cart-badge',
    affixCartIcon: true,
    checkoutCart: function(products) {
      $.each(products, function(){
        console.log(this);
      });
    },
    clickOnAddToCart: function($addTocart){
      goToCartIcon($addTocart);
    },
    getDiscountPrice: function(products) {
      var total = 0;
      $.each(products, function(){
        total = this.quantity * this.price;
      });
      return total * 1;
    }
  });

});

Este utiliza tres librerias.

<script type='text/javascript' src="js/bootstrap.min.js"></script> --> http://pastebin.com/rTYEkvu0

<script type='text/javascript' src="js/jquery.mycart.js"></script> --> http://pastebin.com/a0RCA78U
jquery.mycart.min.js --> http://pastebin.com/N60gAhdq
Adjunto imagen del error :

Fijense como agrega los productos subiendo las cantidades de a 1

Si necesitan algun codigo mas me avisan ! una ayuda para esto que me tiene loco !

0voto

Alex_Numpaque comentado

Necesito que expliques con claridad la situación, y cual es el resultado que esperas ver en la datatable

1voto

matti comentado

El problema esta en que cada vez que das click en agregar productos agrega las cantidades de productos sumando la cantidad en 1, es decir, en el 4 producto que envies al carrito te carga 4 productos del mismo en vez de 1, en el producto que pongas en el carro te pone 15 productos, etc, no se como hice pero lo pude arreglar todavia no encontre que parte modifique del codigo que hice que funcione

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta