PHP - Carrito de compras no conserva productos

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

Carrito de compras no conserva productos

Publicado por Giuliano (74 intervenciones) el 31/08/2018 18:26:05
Estoy haciendo un carrito de compras con Ajax y php y no me devuelve los productos que agrego. El log de la consola da array vacio.
Tengo en JQuery:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
$(document).ready(function() {
listarDetalle();
 
});
function listarDetalle(){
    var accion="listar";
 
    $.ajax({
 
        type: "POST",
        url: "//localhost/gestionweb/includes/php/procesoDetalle.php",
        data: { "accion":accion},
        dataType:'json',
 
        error: function(){
            alert("error petición ajax");
        },
 
        success: function(data){
 
            console.log(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].cantidad + "</td>" +
                    "<td><input type='radio' id='"+data[i].idproducto+"' name='seleccion'/></td>"+
                    "</tr>";
                $(newRow).appendTo("#ticket tbody");
 
        } }
 
    }).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);
 
      }
 
    });;
 
};

Y mi php que trabaja con sessiones es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
 
include ("../../models/claseTicket.php");
 
 
if (isset($_POST['accion'])){
   if ($_POST['accion']=="listar"){
        session_start();
        if(isset($_SESSION['carrito'])){
            $carrito = $_SESSION['carrito'];
            echo json_encode($carrito);
        }else{
 
          $carrito = array();
          echo json_encode($carrito);
        }
 
   }else if ($_POST['accion']=="agregar"){
 
        $detalle = new detalleTicket();
        $detalle->id = $_POST['id'];
        $detalle->precio = $_POST['precio'];
        $detalle->cantidad = $_POST['cantidad'];
        $detalle->nombre = $_POST['nombre'];
 
        session_start();
 
        if(isset($_SESSION['carrito'])){
            $carrito = $_SESSION['carrito'];
        } else {
            $carrito = array();
        }
        array_push($carrito, $detalle);
        $_SESSION['carrito'] = $carrito;
 
    }
 
}
 
?>

Alguien me puede ayudar? no da error pero devuelve vacio.
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
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Carrito de compras no conserva productos

Publicado por Yamil Bracho (888 intervenciones) el 31/08/2018 18:57:44
1) Coloca session_start() como primera instruccion en tu script
2) Haz un dump de $carrito cuando agregas para ver si efectivamente se estan agregando los datos...
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: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Carrito de compras no conserva productos

Publicado por Giuliano (74 intervenciones) el 31/08/2018 19:41:44
Y la salida de var_dump deberia estar en la consola de mozilla no? porque no aparece nada.
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: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Carrito de compras no conserva productos

Publicado por Giuliano (74 intervenciones) el 31/08/2018 20:01:32
Logre que me muestre el array en la consola, osea lo graba, pero dice undefined en la pagina:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
 
include ("../../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();
        }
 
        array_push($carrito, $detalle);
 
        $_SESSION['carrito'] = $carrito;
 
    }
 
 
 
}
 
 
?>

Estaba armando mal el objeto detalleticket. ahora llega el array inclusive si cierro la pagina pero no lee los atributos
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