Shopping Cart problem AJAX, does not make the request

0

I ATTEMPT TO ADD TO MY SHOPPING CART AN ARTICLE BUT WHEN IT SEEMS NOT TO PERFORM THE AJAX REQUEST THE VALUE OF EACH INPUT IF OBTAINED BUT THE MEMORY OF SENDING INFORMATION TO THE .PHP BY AJAX DOES NOT WORK

                    //SECCION HTML

                    <?php
                    //echo "<input type='hidden' name='idproducto' value='$idproducto'>";
                    echo "<input type='hidden' name='nombre-producto' value='$nombreproducto' id='nombreProducto$idproducto'>";
                    echo "<input type='hidden' name='envio' value='$envio' id='envioProducto$idproducto'>";
                    echo "<input type='hidden' name='precioProducto' value='$precioProducto' id='precioProducto$idproducto'>";
                    echo "<input type='hidden' name='imgProducto' value='$imgProducto' id='imgProducto$idproducto'>";
                    echo "<input type='number' min='1' max='$cantidad' step='1' value='1' name='cantidad' id='cantidadProducto$idproducto'>";                    

                    ?>

                        <p class="log"></p>
                   </div>
                          <div class="col l6">
                        <?php
                    echo "<button name='add_to_cart' id='$idproducto' class = ' left btn waves-effect blue black-text add_to_cart' style = 'margin-right: 20px;' type='submit'> + Carrito</button>";
                        ?>
                    </div>


                       //SECCION JAVASCRIPT
                                  <script type="text/javascript">


$(document).ready(function (data) {

    $('.add_to_cart').click(function () {//DETECTA SI SE HIZO CLICK EN EL BOTON DE AÑADIR AL CARRITO


        var idProducto = $(this).attr("id");//OBTIENE EL ID DEL PRODCUTO  
        alert(idProducto);          
        //OBTIENE LOS ATRIBUTOS DEL PRODUCTO QUE SE VAN AÑADIR AL CARRITO
        var nombreProducto = $('#nombreProducto' + idProducto).val();             
        var envioProducto = $('#envioProducto' + idProducto).val();
        var precioProducto = $('#precioProducto' + idProducto).val();
        var imgProducto = $('#imgProducto' + idProducto).val();
        alert(imgProducto);
        var cantidadProducto = $('#cantidadProducto' + idProducto).val();            
        var accion = "add";//ESTABLECE LA ACCION QUE SE ESTA REALIZANDO

        if (cantidadProducto > 0) {//SI LA CANTIDAD SELECCIONADA ES MAYOR A 1 SE PROCEDE A LA PETICION AJAX
            //SE ENVIA LA PETICION AJAX POR METODO POST COMO DATOS LOS VALORES RECUPERADOS ANTERIORMENTE
            alert('entrando al if de ajax');


            $.ajax({

                url:"/",
                method:"POST",
                dataType:"json",
                data:{
                    idProducto:idProducto,
                    nombreProducto:nombreProducto,
                    envioProducto:envioProducto,
                    precioProducto:precioProducto,
                    imgProducto:imgProducto,
                    product_quantity:cantidadProducto,
                    accion: accion
                },
                  beforeSend: function () {
                    window.alert('Procesando solicitud');
                 },
                success: function (data){
                    $('#order_table').html(data.order_table);
                    window.alert("producto agregado");
                }
            });

        } else {
            alert("POR FAVOR AGREGE UNA CANTIDAD");
        }


    });
});

                           //ACTION.PHP



                        <?php

                  session_start();//INICIA SESSION



                            if (isset($_POST["idProducto"])) {//SE VERIFICA SI SE RECIBIO EL ID DEL PRODUCTO


$order_table = '';//SE INICIALIZA LA VARIABLE QUE CONTENDRA LA TBALA ORDENADA DONDE SE IMPRIMIRAN LOS REUSLTADOS DEL CARRITO
$message = '';//SE INCIALIZA UNA VARIABLE TIPO MENSJAE
if ($_POST["accion"] == "add") {//SI LA VARIABLE ACCION ES IGUAL A ADD SE PROCEDE
     echo "<script> alert('AJAX FUNCIONANDO');</script>"; 
    if (isset($_SESSION['shopping_cart'])) {//SI EXISTE EL CARRITO 
        $is_avaible = 0;
        foreach ($_SESSION['shopping_cart'] as $keys => $values) {//SE RECORRE LO QUE HAY EN EL CARRITO
            if ($_SESSION['shopping_cart'][$keys]['idProducto'] == $_POST["idProducto"]) {
                echo "<script> "
                . "swal({"
                . "title: 'Oops...',"
                . "text: 'El producto ya esta en el carrito !',"
                . "timer: 3000,"
                . "type: 'warning',"
                . "showCancelButton: false,"
                . "showConfirmButton: true"
                . "});"
                . "</script>"; //SI YA EXITE EL PRODUCTO EN EL CARRITO TE MANDA UN MENSJAE DE ITEM REPETIDO
            }
        }
        if ($is_avaible < 1) {//SI EL PRODUCTO NO ESTA REPETIDO SE AGREGA AL CARRITO COMO UN NUEVO ITEM

            $item_array = array(
                'idProducto' => $_POST['idProducto'],
                'nombreProducto' => $_POST['nombreProducto'],
                'envioProducto' => $_POST['envioProducto'],
                'precioProducto' => $_POST['precioProducto'],
                'cantidadProducto' => $_POST['cantidadProducto'],
                'imgProducto' => $_POST['imgProducto']
            );
            $_SESSION['shopping_cart'][] = $item_array;
        }
    } else {//SI NO EXISTE EL CARRITO SE AGREGA AL CARRITO EL PRODUCTO DIRECTAMENTE 
         $item_array = array(
                'idProducto' => $_POST['idProducto'],
                'nombreProducto' => $_POST['nombreProducto'],
                'envioProducto' => $_POST['envioProducto'],
                'precioProducto' => $_POST['precioProducto'],
                'cantidadProducto' => $_POST['cantidadProducto'],
                'imgProducto' => $_POST['imgProducto']
            );
        $_SESSION['shopping_cart'][0] = $item_array;
    }
}
    $order_table .= '

          <table class="col s12">
                <thead>
                <tr>
                    <th width = "10%">Imagen</th>
                    <th width = "40%">Nombre del producto</th>
                    <th width = "20%">Precio</th>
                    <th width = "10%">Cantidad</th>                        
                    <th width = "15%">Total</th>
                    <th width = "5%">Accion</th>


                </tr>
                </thead>





            ';

    if (!empty($_SESSION['shopping_cart'])) {//SI EL CARRITO NO ESTA VACIO SE RECORRE CON UN FOREACH
        $total = 0;
        foreach ($_SESSION['shopping_cart'] as $keys => $values) {//SE RECORRE EL CARRITO Y SE IMPRIME EN LA TABLA 
            $order_table .= '
                    <tr>
                    <td >' . $values['imgProducto'] . '</td>
                    <td >' . $values['nombreProducto'] . '</td>
                    <td >' . $values['precioProducto'] . '</td>
                    <td >' . $values['cantidadProducto'] . '</td>


                    <td > $' . number_format($values['cantidadProducto'] * $values['precioProducto'], 2) . '</td>
                    <td><button name="delete" class="delete" id="' . $values['idProducto'] . '">Eliminar</button></td>    



                </tr>';
            $total = $total + ($values["cantidadProducto"] * $values['precioProducto']);
        }
        $order_table .= '

                <tr>
                     <td> Total <td>
                     <td>$ ' . number_format($total, 2) . '</td>


                </tr>



                ';
    }
    $order_table .= '</table>';


    $output = array(
        'order_table' => $order_table,
        //'cart_item' => count($_SESSION['shopping_cart'])
    );
    echo json_encode($output);

} ? >

    
asked by Eduardo Sinaloa 04.08.2018 в 02:24
source

0 answers