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
<form method="GET" name="agregar" id="agregar" > <fieldset> <input type="hidden" name="productoID" id="productoID" /> <div id="flotante" style="display:none;"> <div class="izquierda"> <input type="text" name="inventariado" id="inventariado" size="7" /> </div> <div class="derecha"> <input type="text" name="estado" id="estado" size="10" /> </div> </div> <input type="submit" name="nuevo" value="Agregar" /> </fieldset> </form>
este es el archivo que crea la sesion y guarda los datos.
Código PHP:
Ver original
<?php require_once '../_clases/connection.class.php'; require_once '../_clases/login.class.php'; require_once '../_clases/pedidos.class.php'; $conn = new Connection(); $login = new login($conn); $ped = new pedido($conn); $login->seguridad(); echo "<SCRIPT language='JavaScript' type='text/javascript'> document.agregar.reset();</SCRIPT>"; $p = $ped->retornaPrecio($_GET['productoID'],$_GET['cantidad']); $precio = $p->precio; @$pedido = $_SESSION["pedido"]; "codigo"=>$_GET["productoID"], "cantidad"=>$_GET["cantidad"], "servicio"=>$_GET["servicio"], "produccion"=>$_REQUEST['produccion'], "diseno"=>$_REQUEST['diseno'], "inventario"=>$_REQUEST['inventario'], "precioU"=>$precio, "descuento"=>0 ); $_SESSION["pedido"] = $pedido; endif; ?> <div id="detalle-gral"> <table border="1" width="100%"> <thead> <tr> <td>Cantidad</td> <td>Producto | Servicio</td> <td>P</td> <td>D</td> <td>I</td> <td>$ Precio U.</td> <td>% Descuento</td> <td>$ Importe</td> </tr> </thead> <tbody> <?php ?> <tr> <td colspan="8">Aún no se ha agregado ningun producto al detalle.</td> </tr> <?php else: $total = 0; $subtotal = 0; $precioIva = 0; $subtotalProducto = 0; $descuentoGral = 0; foreach($_SESSION["pedido"] as $item): $importe = $item['precioU'] * $item['cantidad']; $subtotal += $importe; $precio_iva = $subtotal * iva; $total = $subtotal + $precio_iva; ?> <tr> <td><?php echo $item['cantidad']; ?></td> <td><?php echo $item['servicio']; ?></td> <td><?php echo $item['produccion'] ?></td> <td><?php echo $item['diseno']; ?></td> <td><?php echo $item['inventario']; ?></td> <td><?php echo $item['precioU']; ?></td> <td><?php echo $item['descuento']; ?></td> </tr> <?php endforeach; endif; ?> </tbody> </table> </div> <div id="totales-pedido"> subtotal<input type="text" name="subtotal" id="subtotal" value="<?php echo $subtotal; ?>" size="5" readonly="readonly" /> impuestos<input type="text" name="iva" id="iva" value="<?php echo $precio_iva; ?>" size="5" readonly="readonly" /> total<input type="text" name="total" id="total" value="<?php echo $total; ?>" size="5" readonly="readonly" /> </div>
esta es mi funcion AJAX para que no recargue la pagina.
Código Javascript:
Ver original
$(function(){ $("#agregar").submit(function(){ $.ajax({ type:"GET", url:"response_pedido.php", dataType:"html", data:$(this).serialize(), beforeSend:function(){ $("#loading").hide(); }, success:function(response){ $("#response").html(response); $("#loading").hide(); } }) return false; }) })
Espero me puedan ayudar.