/** * Método estatico de inserción de registros en persona * + FECHA DE ALTA * @return [type] [description] */ public static function insert($actualiza = false) { // Comprobamos que los campos requeridos están sino error if (isset($_POST["nombre"]) && isset($_POST["apellidos"]) && isset($_POST["email"])) { // variable del método para poder hacer un rapido bindeo de parametros y errores $errores = []; $campos = []; // validamos el nombre if (isset($_POST["nombre"])) { if (($err = Validaciones::validarNombre($_POST["nombre"])) !== true) { $errores["nombre"] = $err; } else { // si hay nombre lo ponemos en un array $campos[":nombre"] = $_POST["nombre"]; } } if (isset($_POST["apellidos"])) { // Validamos los apellidos if (($err = Validaciones::validarApellidos($_POST["apellidos"])) !== true) { $errores["apellidos"] = $err; } else { // si son validos los apellidos lo preparamos para el bindeo $campos[":apellidos"] = $_POST["apellidos"]; } } if (isset($_POST["email"])) { // validamos el email if (($err = Validaciones::validarEmail($_POST["email"])) !== true) { $errores["email"] = $err; } else { if (self::comprobarUnique("email", $_POST["email"]) === true) { $errores["email"][] = "El email insertado ya está registrado."; } else { $campos[":email"] = $_POST["email"]; } } } if (isset($_POST["direccion"])) { // Si existe la dirección se valida if (($err = Validaciones::validarDireccion($_POST["direccion"])) !== true) { $errores["direccion"] = $err; } else { // si existe, preparamos el bindeo $campos[":direccion"] = $_POST["direccion"]; } } // si existe la provincia if (isset($_POST["provincia"])) { // se valida la provincia if (($err = provinciaModel::getProvinciaByNombre($_POST["provincia"])) !== true) { $errores["provincia"][] = "La provincia no existe"; } else { $prov = ProvinciaModel::getProvinciaId($_POST["provincia"]); $campos[":provincia"] = $prov[0]['id']; } } // si existe provincia // si exite el nif if (isset($_POST["nif"])) { // se valida if (($err = Validaciones::validarNif($_POST["nif"])) !== true) { $errores["nif"][] = "El DNI o NIF no cumple el formato."; } else { if (self::comprobarUnique("nif", $_POST["nif"]) === true) { $errores["nif"][] = "El DNI o NIF insertado ya está registrado."; } else { $campos[":nif"] = $_POST["nif"]; } } } // si existe telefono if (isset($_POST["telefono"])) { // se valida if (($err = Validaciones::validarTelefono($_POST["telefono"])) !== true) { $errores["telefono"] = $err; } else { // si existe la preparo $campos[":telefono"] = $_POST["telefono"]; } } // si exite newsletter if (isset($_POST["newsletter"])) { // se valida if (($err = Validaciones::validarTelefono($_POST["newsletter"])) !== true) { $errores["newsletter"] = $err; } else { // si existe la preparo $campos[":newsletter"] = $_POST["newsletter"]; } } // si no hay errores if (!$errores) { // Si ha pasado las validaciones y estoy actualizando paro aquí y devuelvo true. if ($actualiza === true) { return true; } try { // Montamos las consultas $fields = ""; $values = ""; // $values = " :campo1 :campo2 ..." // $fields = "campo1, campo2," foreach ($campos as $indice => $valor) { $values .= " " . $indice . ","; $aux = mb_substr($indice, 1); $fields .= $aux . ","; } // le quito la última coma de más $fields = trim($fields, ","); $values = trim($values, ","); // conexión a la base de datos $conn = Database::getInstance()->getDatabase(); // consulta de la base de datos // Añadimos a la consulta la fecha de alta formateada $fecha = "'" . date("Y-m-d") . "'"; $ssql = "INSERT INTO persona({$fields}, fecha_alta) VALUES ({$values}, {$fecha})"; // preparamos la consulta $query = $conn->prepare($ssql); $query->execute($campos); if ($query->rowCount() === 1) { return $conn->lastInsertId(); } return false; } catch (PDOException $e) { // Lanzamos una excepción a tratar en el controlador throw new Exception('Error con la base de datos'); } } else { // devolvemos los errores return Validaciones::resultado($errores); } } else { // si los campos requeridos no existen $errores['generic'][] = "Los campos requeridos no han sido introducidos"; return Validaciones::resultado($errores); } }
<?php require_once "model.php"; require_once "provinciaModel.php"; require_once "tipoDomicilioModel.php"; require_once "localidadModel.php"; require_once "especialidadModel.php"; $provincia = new provinciaModel(); $provincias = $provincia->get_provincias(); $localidad = new localidadModel(); $localidades = $localidad->get_localidades(); $tipo = new tipoDomicilioModel(); $tipos = $tipo->get_tipo_domicilios(); $especialidad = new especialidadModel(); $especialidades = $especialidad->get_especialidades(); ?> <html> <head> <title>Nuevo Profesional</title> <script language="javascript" src="jquery.js"></script> <script language="javascript"> $(document).ready(function () { $("#provincia").change(function () { $("#provincia option:selected").each(function () { id_provincia = $(this).val(); $.post("ajax.php", {id_provincia: id_provincia}, function (data) { $("#localidad").html(data); }); }); }); });