Código Javascript :
var content; var id; var nombre; var marca; var precio; $(document).ready(function() { listar(); var nombreBusqueda; $("#nombre").keyup(function() { nombreBusqueda=$("#nombre").val(); filtrar(nombreBusqueda); } ); var id; var nombre; var marca; var producto; var precio; // Detectar clic en una fila $("#resultado tbody").click(function(event) { $("tr").click(function(event) { id = $(this).find("td:first-child").text(); nombre = $(this).children('td').eq(1).text(); marca = $(this).children('td').eq(2).text(); precio = $(this).children('td').eq(4).text(); producto = nombre + " " + marca; $("#nombreselec").val(producto); }); }); $("#Agregar").click(function(event){ var cantidad=$("#CANTIDAD").val(); if (cantidad!==""){ var accion = "agregar"; $.ajax({ type: "POST", url: "../gestionweb/includes/php/procesoDetalle.php", data: {"accion":accion,"id":id,"cantidad":cantidad,"nombre":nombre,"marca":marca,"precio":precio}, dataType:'html', error: function(){ alert("error petición ajax"); }, success: function(data){ console.log(data); } }).fail( function( jqXHR, textStatus, errorThrown ) { if (jqXHR.status === 0) { alert('Not connect: Verify Network.'); } else if (jqXHR.status == 404) { alert('Requested page not found [404]'); } else if (jqXHR.status == 500) { alert('Internal Server Error [500].'); } else if (textStatus === 'parsererror') { alert('Requested JSON parse failed.'); } else if (textStatus === 'timeout') { alert('Time out error.'); } else if (textStatus === 'abort') { alert('Ajax request aborted.'); } else { alert('Uncaught Error: ' + jqXHR.responseText); } }); } else{ alert("ingrese cantidad"); } }); }); function filtrar(dato){ var filtrado=[]; var existe; for(var i = 0; i < content.length; i++) { if (content[i].nombre.toLowerCase().indexOf(dato.toLowerCase())!=-1) { filtrado.push(content[i]); } } if (filtrado.length>0) { $("#resultado tbody").empty(); for (var i = 0; i < filtrado.length; i++) { var newRow = "<tr>" + "<td>" + filtrado[i].idproducto + "</td>" + "<td>" + filtrado[i].nombre + "</td>" + "<td>" + filtrado[i].marca + "</td>" + "<td>" + filtrado[i].categoria + "</td>" + "<td>" + filtrado[i].precio + "</td>" + "<td><input type='radio' id='"+filtrado[i].idproducto+"' name='seleccion'/></td>"+ "</tr>"; $(newRow).appendTo("#resultado tbody"); } }}; function listar(){ tipofiltro="todos"; $.ajax({ type: "POST", url: "../gestionweb/includes/php/filtroP.php", data: { "tf": tipofiltro}, dataType: "json", error: function(){ alert("error petición ajax"); }, success: function(data){ content=data; for (var i = 0; i < data.length; i++) { var newRow = "<tr>" + "<td>" + data[i].idproducto + "</td>" + "<td>" + data[i].nombre + "</td>" + "<td>" + data[i].marca + "</td>" + "<td>" + data[i].categoria + "</td>" + "<td>" + data[i].precio + "</td>" + "<td><input type='radio' id='"+data[i].idproducto+"' name='seleccion'/></td>"+ "</tr>"; $(newRow).appendTo("#resultado tbody"); } } }); };
Con el codigo de arriba tengo el boton agregar que añade un producto al ticket o carro de compras.
Luego en procesodetalle.php tengo:
Código PHP :
<?php session_start(); require ("../../models/claseTicket.php"); if (isset($_POST['accion'])){ if ($_POST['accion']=="listar"){ if(isset($_SESSION['carrito'])){ $carrito = $_SESSION['carrito']; echo json_encode($carrito); }else{ $carrito = array(); echo json_encode($carrito); } }else if ($_POST['accion']=="agregar"){ $id = $_POST['id']; $pu = $_POST['precio']; $cant = $_POST['cantidad']; $nom = $_POST['nombre']; $detalle = new detalleTicket($id,$pu,$cant,$nom); if(isset($_SESSION['carrito'])){ $carrito = $_SESSION['carrito']; } else { $carrito = array(); } var_dump($carrito); array_push($carrito, $detalle); $_SESSION['carrito'] = $carrito; } } ?>
Pero me muestra undefined en las filas de la tabla de factura.
La verdad no se que puede ser.