Tengo un formulario con diversos checkbox. Antes de insertar los datos en la BD, estos campos los tengo que pasar por una función para que se inserte 1 o 0, ya que cuando está activo, el valor es 'on'.
Mi problema surge cuando quiero modificar algún valor desde el formulario, estos no me aparecen como activos, ya que el valor almacenado es '1' en vez de 'on'.
Os dejo las funciones que uso:
Insertar Usuario
Código:
Validar Adminpublic function crearUsuario($consultor, $fechainicio, $fechafin,$facturacion, $tarifa, $costesalarial, $usuari, $pwd, $pwdconfirm, $admin, $group) { $user = new Usuario(); $ret = $user->validarDatos($consultor, $fechainicio, $usuari, $pwd, $pwdconfirm); if ( $ret != null ){ throw new Exception("Los siguientes datos no son válidos:<br/> " . $ret); } $esadmin=$user->validarCampoAdmin($admin); $query = "INSERT INTO consultores(consultor, f_inicio, f_fin, facturacion, tarifa, costesalarial, usuario, password, admin) VALUES ('$consultor', '$fechainicio', '$fechafin', '$facturacion', '$tarifa', '$costesalarial', '$usuari', '$pwd', '$esadmin');"; //print $query; $consulta = new Consulta($query); if(!$consulta) throw new Exception("Error al crear el Consultor : ".$usuari); }
Código:
Esta es la función que uso para recuperar el usuario antes de modificarlo:public function validarCampoAdmin($admin){ if ($admin=on){ $admin=1; } else{ $admin=0; } return $admin; }
public function recuperarUsuario($usuari) {
Código:
Finalmente la plantilla donde está el checkbox que debería de aparecer marcado si es el caso. He probado de mil maneras, con comillas simples, dobles, nada... y el resultado es el mismo...$query= "SELECT Ident_consultor, consultor, f_inicio, f_fin, facturacion, tarifa, costesalarial, usuario, password, admin FROM consultores WHERE Ident_consultor='$usuari';"; $consulta = new Consulta($query); if($fila=$consulta->obtener_fila()){ $this->Ident_consultor =$fila['Ident_consultor']; $this->consultor =$fila['consultor']; $this->f_inicio =$fila['f_inicio']; $this->f_fin =$fila['f_fin']; $this->facturacion =$fila['facturacion']; $this->tarifa =$fila['tarifa']; $this->costesalarial =$fila['costesalarial']; $this->usuario =$fila['usuario']; $this->password =$fila['password']; $this->admin =$fila['admin']; } }
Código:
Muchas gracias! <tr> <td colspan="1"> <b>¿Es Administrador?</b></td> <td colspan="1"> <input type="checkbox" name="admin" value="<?php if((isset($user->admin)) AND $user->admin="1") { print "on"; } else { print '';} ?>"> </td> </tr>