form.altaproducto.php
Código HTML:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="../css/redmond/jquery-ui-1.9.2.custom.css" rel="stylesheet"> <script> $(function(){ $("#guardar").button(); $("#msj").hide(); $("#cargado").hide(); $("#dialogo").hide(); $('#producto').focus(); var options = { beforeSubmit: antesdeenviar, success: respuesta, dataType: 'json' }; $('#frmproductos').ajaxForm(options); }); function antesdeenviar(){ $('#cargado').show(); $('#guardar').button("disable"); } function respuesta(datos){ $("#cargado").hide(); if(datos.op=='OK'){ $("#msj").html("Producto nuevo guardado exitosamente"); $("#msj").addClass("ui-state-highlight"); $("#msj").show("slow").delay(2000).hide("slow"); }else{ var mensaje="Completa los campos resaltados"; $.each(datos.error,function(item,valor){ //Tomar un elemento del json y hacer uso. pasar 2 parametros, coleccion de datos $('#'+valor).addClass("ui-state-error"); }); $("#dialogo").html(mensaje); $("#dialogo").show('slow').delay(2000).hide('slow'); } $('#guardar').button("enable"); } </script> </head> <body> <table> <form id="frmproductos" name="frmproductos" method="post" action="accion.altaproducto.php"> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </tr> <tr> </form> </table> </body> </html>
accion.altaproducto.php
Código PHP:
Ver original
<?php include "class.productos.php"; $producto=$_POST['producto']; $descripcion=$_POST['descripcion']; $categoria=$_POST['categoria']; $marca=$_POST['marca']; $costo=$_POST['costo']; $precioa=$_POST['precioa']; $preciob=$_POST['preciob']; $precioc=$_POST['precioc']; //validacion de que no vengan vacios $datos['error'][]='producto'; } $datos['error'][]='descripcion'; } $datos['error'][]='categoria'; } $datos['error'][]='marca'; } $datos['error'][]='costo'; } $datos['error'][]='precioa'; } $datos['error'][]='preciob'; } $datos['error'][]='precioc'; } //contamos los errores almacenados en $datos $clase=new productos; if($cod=$clase->nuevoproducto($producto,$descripcion,$categoria,$marca,$costo,$precioa,$preciob,$precioc)){ $datos['id']=$cod; $datos['op']='OK'; }else{ $datos['op']='ERRORDATOS'; } }else{ $datos['op']='ERROR'; } ?>
class.productos.php
Código PHP:
Ver original
<?php class productos{ //Creo las variables a utilizar private $id_producto=""; private $producto=""; private $descripcion=""; private $categoria=""; private $marca=""; private $costo=""; private $precioa=""; private $preciob=""; private $precioc=""; private $stock=""; //Creo la funcion constructora que conecta a la base function __construct(){ } //Setters y Getters //id_producto public function set_id_producto($valor=""){ $this->id_producto=$valor; } public function get_id_producto(){ return $this->id_producto; } //producto public function set_producto($valor=""){ $this->producto=$valor; } public function get_producto(){ return $this->producto; } //descripcion public function set_descripcion($valor=""){ $this->descripcion=$valor; } public function get_descripcion(){ return $this->descripcion; } //categoria public function set_categoria($valor=""){ $this->categoria=$valor; } public function get_categoria(){ return $this->categoria; } //marca public function set_marca($valor=""){ $this->marca=$valor; } public function get_marca(){ return $this->marca; } //costo public function set_costo($valor=""){ $this->costo=$valor; } public function get_costo(){ return $this->costo; } //precio a public function set_precioa($valor=""){ $this->precioa=$valor; } public function get_precioa(){ return $this->precioa; } //precio b public function set_preciob($valor=""){ $this->preciob=$valor; } public function get_preciob(){ return $this->preciob; } //precio c public function set_precioc($valor=""){ $this->precioc=$valor; } public function get_precioc(){ return $this->precioc; } //stock public function set_stock($valor=""){ $this->stock=$valor; } public function get_stock(){ return $this->stock; } //Funcion que prepara para guardar nuevo producto public function nuevoproducto($producto="",$descripcion="",$categoria="",$marca="",$costo="",$precioa="",$preciob="",$precioc=""){ $this->set_producto($producto); $this->set_descripcion($descripcion); $this->set_categoria($categoria); $this->set_marca($marca); $this->set_costo($costo); $this->set_precioa($precioa); $this->set_preciob($preciob); $this->set_precioc($precioc); if($this->guardar()){ return $this->get_id_producto(); }else{ return false; } } //Funcion que guarda en la tabla el nuevo producto public function guardar(){ if($this->get_id_producto()==""){ $sql =sprintf("INSERT INTO productos(producto,descripcion,categoria,marca,costo,precioa,preciob,precioc) VALUES ('%s','%s','%s','%s','%s','%s','%s','%s');",$this->get_producto(),$this->get_descripcion(),$this->get_categoria(),$this->get_marca(),$this->get_costo(),$this->get_precioa(),$this->get_preciob(),$this->get_precioc()); return $this->get_id_producto(); }else{ return false; } }else{ $sql=sprintf("UPDATE productos SET producto='%s',descripcion='%s',categoria='%s',marca='%s',costo='%s',precioa='%s',preciob='%s',precioc='%s' WHERE id_producto=%d",$this->get_producto(),$this->get_descripcion(),$this->get_categoria(),$this->get_marca(),$this->get_costo(),$this->get_precioa(),$this->get_preciob(),$this->get_precioc()); return $this->get_id_producto(); }else{ return false; } }else{ $this->set_id_producto(""); $this->guardar(); } } } //Creo la funcion destructora que desconecta de la base function __destruct(){ } } ?>
Gracias! Para que no lean todo el problema creo que lo tengo en el formulario, en la parte de ajax