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);
} ? >