Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2013, 16:39
Avatar de jandrogdz
jandrogdz
 
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 12 años, 4 meses
Puntos: 12
Pregunta Problema con sesiones

Buenas foro

Tengo un problema con una sesión que me guarda los datos de un pedido.
al momento de entrar en la pagina por default me carga un registro en blanco en la sesión, si trato de ponerle un if que valide que si se envío el formulario inicie la sesión no guarda los datos.


Este es mi formulario.
Código HTML:
Ver original
  1. <form method="GET" name="agregar" id="agregar" >
  2.                     <fieldset>
  3.                         <legend>Agregar producto | servicio</legend>
  4.                     <label for="cantidad">Cantidad</label>
  5.                     <input type="text" name="cantidad" id="cantidad" size="15" /><br />
  6.                     <label for="servicio">Producto | Servicio</label>
  7.                     <input type="text" name="servicio" id="servicio" size="45" autocomplete="off" /><br /><br />
  8.                     <input type="hidden" name="productoID" id="productoID" />
  9.                     <label for="produccion"><input type="checkbox" name="produccion" id="produccion" value="1" /> Producci&oacute;n </label>
  10.                     <label for="diseno"><input type="checkbox" name="diseno" id="diseno" value="1" /> Dise&ntilde;o </label>
  11.                     <label for="inventario"><input type="checkbox" name="inventario" id="inventario" value="1" onClick="disableOthers(this)" /> Inventario </label><br />
  12.                     <label for="comentario_adicional">Comentario adicional</label>
  13.                     <textarea name="comentario_adicional" cols="45" rows="5"></textarea>
  14.                     <div id="mostrarDiv"><a href="javascript:mostrardiv();">+ almac&eacute;n</a></div>
  15.                         <div id="flotante" style="display:none;">
  16.                         <a href="javascript:cerrar();"> - almac&eacute;n</a><br />
  17.                             <div class="izquierda">
  18.                                 <label for="existencias">Existencias</label>
  19.                                 <input type="text" name="existencias" id="existencias" size="7" /><br />
  20.                                 <label for="inventariado">Inventariado</label>
  21.                                 <input type="text" name="inventariado" id="inventariado" size="7" />
  22.                             </div>
  23.                             <div class="derecha">
  24.                                 <label for="minimo_stock">Minimo stock</label>
  25.                                 <input type="text" name="minimo_stock" id="minimo_stock" size="7" /><br />
  26.                                 <label for="estado">Estado</label>
  27.                                 <input type="text" name="estado" id="estado" size="10" />
  28.                             </div>
  29.                         </div>
  30.                     <input type="submit" name="nuevo" value="Agregar" />
  31.                     </fieldset>
  32.                     </form>

este es el archivo que crea la sesion y guarda los datos.

Código PHP:
Ver original
  1. <?php
  2. require_once '../_clases/connection.class.php';
  3. require_once '../_clases/login.class.php';
  4. require_once '../_clases/pedidos.class.php';
  5. $conn = new Connection();
  6. $login = new login($conn);
  7. $ped = new pedido($conn);
  8. $login->seguridad();
  9.  
  10. echo "<SCRIPT language='JavaScript' type='text/javascript'> document.agregar.reset();</SCRIPT>";
  11. if(isset($_GET['nuevo'])):
  12. $p = $ped->retornaPrecio($_GET['productoID'],$_GET['cantidad']);
  13.         $precio = $p->precio;
  14.            
  15.             @$pedido = $_SESSION["pedido"];
  16.             $pedido[$_GET["productoID"]] = array (
  17.             "codigo"=>$_GET["productoID"],
  18.             "cantidad"=>$_GET["cantidad"],
  19.             "servicio"=>$_GET["servicio"],
  20.             "produccion"=>$_REQUEST['produccion'],
  21.             "diseno"=>$_REQUEST['diseno'],
  22.             "inventario"=>$_REQUEST['inventario'],
  23.             "precioU"=>$precio,
  24.             "descuento"=>0
  25.             );
  26.             $_SESSION["pedido"] = $pedido;
  27. endif;            
  28. ?>
  29. <div id="detalle-gral">
  30.     <table border="1" width="100%">
  31.         <thead>
  32.             <tr>
  33.                 <td>Cantidad</td>
  34.                 <td>Producto | Servicio</td>
  35.                 <td>P</td>
  36.                 <td>D</td>
  37.                 <td>I</td>
  38.                 <td>$ Precio U.</td>
  39.                 <td>% Descuento</td>
  40.                 <td>$ Importe</td>  
  41.             </tr>
  42.         </thead>
  43.         <tbody>
  44.         <?php
  45.        
  46.         if(!isset($_SESSION['pedido']) || empty($_SESSION['pedido'])):
  47.         ?>
  48.             <tr>
  49.                 <td colspan="8">A&uacute;n no se ha agregado ningun producto al detalle.</td>
  50.             </tr>
  51.         <?php
  52.         else:
  53.        
  54.         $total = 0;
  55.         $subtotal = 0;
  56.         define("iva",.16);
  57.         $precioIva = 0;
  58.         $subtotalProducto = 0;
  59.         $descuentoGral = 0;
  60.        
  61.         foreach($_SESSION["pedido"] as $item):
  62.             $importe = $item['precioU'] * $item['cantidad'];
  63.             $subtotal += $importe;
  64.             $precio_iva = $subtotal * iva;
  65.             $total = $subtotal + $precio_iva;
  66.         ?>
  67.             <tr>
  68.                 <td><?php echo $item['cantidad']; ?></td>
  69.                 <td><?php echo $item['servicio']; ?></td>
  70.                 <td><?php echo $item['produccion'] ?></td>
  71.                 <td><?php echo $item['diseno']; ?></td>
  72.                 <td><?php echo $item['inventario']; ?></td>
  73.                 <td><?php echo $item['precioU']; ?></td>
  74.                 <td><?php echo $item['descuento']; ?></td>
  75.                 <td><?php echo "$ ".number_format($importe,2,'.',','); ?></td>
  76.             </tr>
  77.         <?php
  78.         endforeach;
  79.         endif;
  80.         ?>
  81.         </tbody>
  82.     </table>              
  83. </div>
  84. <div id="totales-pedido">
  85.     subtotal<input type="text" name="subtotal" id="subtotal" value="<?php echo $subtotal; ?>" size="5" readonly="readonly" />
  86.     impuestos<input type="text" name="iva" id="iva" value="<?php echo $precio_iva; ?>" size="5" readonly="readonly" />
  87.     total<input type="text" name="total" id="total" value="<?php echo $total; ?>" size="5" readonly="readonly" />
  88. </div>

esta es mi funcion AJAX para que no recargue la pagina.
Código Javascript:
Ver original
  1. $(function(){
  2.     $("#agregar").submit(function(){
  3.         $.ajax({
  4.             type:"GET",
  5.             url:"response_pedido.php",
  6.             dataType:"html",
  7.             data:$(this).serialize(),
  8.             beforeSend:function(){
  9.                 $("#loading").hide();
  10.             },
  11.             success:function(response){
  12.                     $("#response").html(response);
  13.                     $("#loading").hide();
  14.             }
  15.         })
  16.         return false;
  17.     })
  18. })


Espero me puedan ayudar.
__________________
Lo imposible solo cuesta un poco mas