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<form method="GET" name="agregar" id="agregar" > <input type="text" name="cantidad" id="cantidad" size="15" /><br /> <input type="text" name="servicio" id="servicio" size="45" autocomplete="off" /><br /><br /> <input type="hidden" name="productoID" id="productoID" /> <label for="produccion"><input type="checkbox" name="produccion" id="produccion" value="1" /> Producci
ón
</label> <label for="diseno"><input type="checkbox" name="diseno" id="diseno" value="1" /> Dise
ño
</label> <label for="inventario"><input type="checkbox" name="inventario" id="inventario" value="1" onClick="disableOthers(this)" /> Inventario
</label><br /> <label for="comentario_adicional">Comentario adicional
</label> <div id="mostrarDiv"><a href="javascript:mostrardiv();">+ almac
én
</a></div> <div id="flotante" style="display:none;"> <a href="javascript:cerrar();"> - almac
én
</a><br /> <input type="text" name="existencias" id="existencias" size="7" /><br /> <input type="text" name="inventariado" id="inventariado" size="7" /> <input type="text" name="minimo_stock" id="minimo_stock" size="7" /><br /> <input type="text" name="estado" id="estado" size="10" /> <input type="submit" name="nuevo" value="Agregar" />
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>";
if(isset($_GET['nuevo'])): $p = $ped->retornaPrecio($_GET['productoID'],$_GET['cantidad']);
$precio = $p->precio;
@$pedido = $_SESSION["pedido"];
$pedido[$_GET["productoID"]] = array ( "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
if(!isset($_SESSION['pedido']) || empty($_SESSION['pedido'])): ?>
<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.