Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/05/2013, 16:42
Avatar de destor77
destor77
 
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 6 meses
Puntos: 43
problema con session y arreglos

Hola a todos,
estoy teniendo un poblemita medio raro y que ya mi cabeza no encuentra solución jeje.
Tengo este código:
Código PHP:
Ver original
  1. public function manos_agregar(){
  2.         $presupuesto = array();
  3.         $items = array();
  4.         $data =  array();
  5.  
  6.         $item = $this->mano->searchPk($this->uri->segment(3));
  7.  
  8.         $presupuesto = $this->session->userdata('presupuesto');
  9.  
  10.         $total_items = count($presupuesto['items']);
  11.  
  12.         if( $total_items != 0 ){
  13.             $item['item_id'] = $total_items + 1;
  14.         }
  15.         else{
  16.             $item['item_id'] = 1;
  17.         }
  18.  
  19.         $item['cantidad'] = 1;
  20.         $item['precio_o'] = $item['precio'];
  21.         //valido si tiene descuento y lo aplico al importe de la mano de obra
  22.         if($item['descuento']!=''){
  23.             $item['precio'] = $item['precio'] - ($item['precio']*$item['descuento']) / 100;
  24.         }
  25.         //agrego el item a la session
  26.  
  27.         array_push($presupuesto['items'],$item);
  28.         $this->session->set_userdata('presupuesto',$presupuesto);
  29.         $data['presupuesto'] = $presupuesto;
  30.  
  31.         echo $this->load->view('presupuestos/tabla_items',$data, true);
  32.     }

Esta funcion es llamada por ajax cada vez que agrego un nuevo item a una tabla html. La misma lo que hace es bucar un valor en la base de datos y despues agregarlo al array de session $presupuesto['items'].

El error o la cosa extraña que esta pasando es que cuando tengo 3 elementos en el arreglo y quiero agregar uno mas este no se agrega sino que sobreescribe el último indice del arreglo, manteniendo siempre la cantidad de 3 indices.

La verdad que probe de todo y no logro dar con la solución, alguien me podra dar una mano.
Desde ya muchas gracias!