File "buscarCorreoC.php"
Full Path: C:/wamp64/www/sistemas/correosCelular/buscarCorreoC.php
File size: 34.08 KB
MIME-type: text/x-php
Charset: utf-8
<?php
include("connection.php");
$con = connection();
// Manejar la actualización de datos
if(isset($_POST['actualizar'])) {
$id = $_POST['id'];
$fecha_entrega = $_POST['fecha_entrega'];
$nombre = $_POST['nombre'];
$documento = $_POST['documento'];
$cargo = $_POST['cargo'];
$area = $_POST['area'];
$ciudad = $_POST['ciudad'];
$valor = $_POST['valor'];
$marca_referencia = $_POST['marca_referencia'];
$correo_celular = $_POST['correo_celular'];
$contrasena_gmail = $_POST['contrasena_gmail'];
$imei1 = $_POST['imei1'];
$imei2 = $_POST['imei2'];
$numero_celular = $_POST['numero_celular'];
$sql = "UPDATE correo_celular SET
fecha_entrega=?, nombre=?, documento=?, cargo=?, area=?,
ciudad=?, valor=?, marca_referencia=?, correo_celular=?,
contrasena_gmail=?, imei1=?, imei2=?, numero_celular=?
WHERE id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("sssssssssssssi",
$fecha_entrega, $nombre, $documento, $cargo, $area,
$ciudad, $valor, $marca_referencia, $correo_celular,
$contrasena_gmail, $imei1, $imei2, $numero_celular, $id);
$stmt->execute();
// Recargar la página con los mismos parámetros de búsqueda
$tipo_busqueda = isset($_GET['tipo']) ? $_GET['tipo'] : 'nombre';
$valor_busqueda = $tipo_busqueda == 'nombre' ? $nombre : $correo_celular;
header("Location: ".$_SERVER['PHP_SELF']."?tipo=".$tipo_busqueda."&".$tipo_busqueda."=".urlencode($valor_busqueda));
exit();
}
$mostrarTabla = false;
$query = null;
$tipo_busqueda = isset($_GET['tipo']) ? $_GET['tipo'] : 'nombre';
$valor_busqueda = isset($_GET[$tipo_busqueda]) ? $_GET[$tipo_busqueda] : '';
// Verificar si se ha enviado una búsqueda
if(isset($_POST['buscar']) && !empty($_POST['valor_busqueda'])) {
$tipo_busqueda = $_POST['tipo_busqueda'];
$valor_busqueda = $_POST['valor_busqueda'];
$mostrarTabla = true;
// Usamos LIKE para búsqueda parcial y agregamos % alrededor del valor
$valor_like = "%".$valor_busqueda."%";
if($tipo_busqueda == 'nombre') {
$sql = "SELECT * FROM correo_celular WHERE nombre LIKE ? ORDER BY id DESC";
} else {
$sql = "SELECT * FROM correo_celular WHERE correo_celular LIKE ? ORDER BY id DESC";
}
$stmt = $con->prepare($sql);
$stmt->bind_param("s", $valor_like);
$stmt->execute();
$query = $stmt->get_result();
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Consulta de Correo Celular">
<meta name="keywords" content="html, css, bases de datos, php">
<meta name="author" content="Sebastian Obando">
<meta name="copyright" content="Sebastian Obando">
<meta name="google" content="notranslate">
<title>Buscar Correo De Celular</title>
<link rel="icon" type="image/png" href="../img/icono1.png">
<!-- Carga de jQuery y DataTables -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.css">
<!-- Font Awesome para íconos -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 0;
padding: 20px;
background-image: linear-gradient(to right, #FF8626, #025159);
min-height: 100vh;
}
.container {
max-width: 1400px;
margin: 0 auto;
background-color: rgba(255, 255, 255, 0.95);
border-radius: 10px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
overflow: hidden;
}
.header {
background-color: #025159;
color: white;
padding: 20px;
text-align: center;
}
.header h2 {
margin: 0;
font-size: 28px;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
}
.search-container {
background-color: #f8f9fa;
padding: 25px;
margin: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
border-left: 5px solid #FF8626;
}
.search-container h3 {
margin-top: 0;
color: #025159;
font-size: 20px;
border-bottom: 1px solid #ddd;
padding-bottom: 10px;
}
.filter-form {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
gap: 15px;
align-items: end;
}
.form-group {
margin-bottom: 0;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #333;
}
.form-group input[type="text"],
.form-group select {
width: 100%;
padding: 10px 12px;
border: 1px solid #ddd;
border-radius: 6px;
box-sizing: border-box;
font-size: 16px;
transition: border 0.3s;
}
.form-group input[type="text"]:focus,
.form-group select:focus {
border-color: #FF8626;
outline: none;
box-shadow: 0 0 0 2px rgba(255, 134, 38, 0.2);
}
.form-group input[type="submit"] {
background-color: #FF8626;
color: white;
border: none;
padding: 12px 20px;
border-radius: 6px;
cursor: pointer;
font-size: 16px;
font-weight: 600;
transition: background-color 0.3s;
height: fit-content;
}
.form-group input[type="submit"]:hover {
background-color: #e5761e;
}
.button-container {
margin: 20px;
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.button-container input[type="button"] {
padding: 10px 20px;
cursor: pointer;
background-color: #FF8626;
color: white;
border: none;
border-radius: 6px;
font-weight: 600;
transition: all 0.3s;
}
.button-container input[type="button"]:hover {
background-color: #e5761e;
transform: translateY(-2px);
}
.button-container input[type="button"].secondary {
background-color: #4179b9;
}
.button-container input[type="button"].secondary:hover {
background-color: #3568a0;
}
.no-results {
padding: 20px;
background-color: #f8d7da;
color: #721c24;
border-radius: 8px;
margin: 20px;
text-align: center;
}
.info-message {
padding: 20px;
background-color: #d1ecf1;
color: #0c5460;
border-radius: 8px;
margin: 20px;
text-align: center;
}
.users-table {
margin: 20px;
overflow-x: auto;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
table.display {
width: 100%;
border-collapse: collapse;
background-color: white;
}
table.display th, table.display td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #e0e0e0;
}
table.display th {
background-color: #025159;
color: white;
font-weight: 600;
position: sticky;
top: 0;
}
table.display tr:hover {
background-color: #f5f5f5;
}
.copyright {
text-align: center;
margin-top: 30px;
color: #666;
font-size: 14px;
padding: 20px;
border-top: 1px solid #e0e0e0;
}
/* Estilos para los botones */
.btn-editar {
padding: 8px 15px;
background-color: #FF8626;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: 600;
transition: background-color 0.3s;
white-space: nowrap;
}
.btn-editar:hover {
background-color: #e5761e;
}
.btn-copiar {
margin-left: 5px;
padding: 5px 10px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
transition: background-color 0.3s;
font-size: 12px;
}
.btn-copiar:hover {
background-color: #45a049;
}
.btn-mostrar {
margin-left: 5px;
padding: 5px 10px;
background-color: #2196F3;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
transition: background-color 0.3s;
font-size: 12px;
}
.btn-mostrar:hover {
background-color: #0b7dda;
}
.contrasena-oculta {
filter: blur(4px);
user-select: none;
display: inline-block;
min-width: 100px;
}
/* Notificación estilo toast */
.toast {
position: fixed;
bottom: 20px;
right: 20px;
background-color: #4CAF50;
color: white;
padding: 12px 24px;
border-radius: 6px;
z-index: 1000;
display: none;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
/* Estilos mejorados para el modal */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
backdrop-filter: blur(5px);
overflow: auto;
}
.modal-content {
background-color: #fefefe;
margin: 2% auto;
padding: 25px;
border: none;
width: 95%;
max-width: 1000px;
border-radius: 10px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
box-sizing: border-box;
position: relative;
animation: modalopen 0.4s;
max-height: 95vh;
overflow-y: auto;
}
/* Animación de apertura del modal */
@keyframes modalopen {
from {opacity: 0; transform: translateY(-50px);}
to {opacity: 1; transform: translateY(0);}
}
.close {
color: #aaa;
position: absolute;
top: 15px;
right: 20px;
font-size: 28px;
font-weight: bold;
cursor: pointer;
transition: color 0.3s;
z-index: 10;
}
.close:hover {
color: #025159;
}
.form-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-bottom: 20px;
}
.form-field {
display: flex;
flex-direction: column;
}
.form-field label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #333;
font-size: 14px;
}
.form-field input {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 6px;
box-sizing: border-box;
transition: border 0.3s;
font-size: 14px;
}
.form-field input:focus {
border-color: #FF8626;
outline: none;
box-shadow: 0 0 0 2px rgba(255, 134, 38, 0.2);
}
/* Botones de acción del modal */
.modal-actions {
display: flex;
justify-content: flex-end;
gap: 10px;
margin-top: 25px;
flex-wrap: wrap;
}
.modal-actions button {
padding: 12px 24px;
border: none;
border-radius: 6px;
cursor: pointer;
font-weight: 600;
transition: all 0.3s;
font-size: 16px;
}
.btn-cancelar {
background-color: #f0f0f0;
color: #333;
}
.btn-cancelar:hover {
background-color: #e0e0e0;
}
.btn-actualizar {
background-color: #FF8626;
color: white;
}
.btn-actualizar:hover {
background-color: #e5761e;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
padding: 5px 10px;
margin-left: 2px;
border: 1px solid transparent;
border-radius: 4px;
color: #025159 !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
background: #FF8626;
color: white !important;
border: 1px solid #FF8626;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
background: #025159;
color: white !important;
border: 1px solid #025159;
}
/* Media Queries para responsividad */
@media (max-width: 768px) {
.filter-form {
grid-template-columns: 1fr;
}
.modal-content {
width: 98%;
margin: 5% auto;
padding: 20px;
}
.form-row {
grid-template-columns: 1fr;
gap: 15px;
}
.modal-actions {
flex-direction: column;
}
.modal-actions button {
width: 100%;
}
.btn-copiar, .btn-mostrar {
margin-left: 3px;
padding: 4px 8px;
font-size: 11px;
}
}
@media (max-width: 480px) {
.modal-content {
width: 100%;
margin: 10% auto;
padding: 15px;
border-radius: 0;
}
.form-field input {
padding: 10px;
}
.close {
top: 10px;
right: 15px;
font-size: 24px;
}
.button-container {
flex-direction: column;
}
.button-container input[type="button"] {
width: 100%;
text-align: center;
}
}
/* Para pantallas muy pequeñas (menos de 360px) */
@media (max-width: 360px) {
.modal-content {
width: 100%;
margin: 0;
min-height: 100vh;
padding: 15px;
}
body {
padding: 0;
}
}
/* Estilos para mejorar la legibilidad en móviles */
@media (max-height: 600px) {
.modal-content {
max-height: 95vh;
}
}
/* Responsive para tabla con muchas columnas */
@media (max-width: 1200px) {
.users-table {
margin: 10px;
font-size: 13px;
}
table.display th,
table.display td {
padding: 8px 10px;
font-size: 13px;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h2><i class="fas fa-mobile-alt"></i> Consulta de Correo Celular</h2>
</div>
<div class="search-container">
<h3>Buscar Correo Celular</h3>
<form method="POST" action="" class="filter-form">
<div class="form-group">
<label for="tipo_busqueda">Buscar por:</label>
<select id="tipo_busqueda" name="tipo_busqueda">
<option value="nombre" <?= $tipo_busqueda == 'nombre' ? 'selected' : '' ?>>Nombre</option>
<option value="correo_celular" <?= $tipo_busqueda == 'correo_celular' ? 'selected' : '' ?>>Correo Celular</option>
</select>
</div>
<div class="form-group">
<label for="valor_busqueda" id="label_valor">Ingrese el <?= $tipo_busqueda == 'nombre' ? 'Nombre del Colaborador' : 'Correo Celular' ?>:</label>
<input type="text" id="valor_busqueda" name="valor_busqueda" value="<?= htmlspecialchars($valor_busqueda) ?>" placeholder="Ingrese el <?= $tipo_busqueda == 'nombre' ? 'nombre del colaborador' : 'correo celular' ?>" required>
</div>
<div class="form-group">
<input type="submit" name="buscar" value="Buscar">
</div>
</form>
</div>
<div class="button-container">
<input type="button" onclick="window.location.href='../index.php';" value="Menú" class="secondary">
<input type="button" onclick="window.location.href='generarExcel.php';" value="Generar Excel" class="secondary">
</div>
<?php if($mostrarTabla): ?>
<?php if($query && $query->num_rows > 0): ?>
<div class="users-table">
<div style="overflow-x: auto;">
<table id="tablaPersonas" class="display">
<thead>
<tr>
<th>ID</th>
<th>Fecha Entrega</th>
<th>Nombre</th>
<th>Cédula</th>
<th>Cargo</th>
<th>Área</th>
<th>Ciudad</th>
<th>Valor</th>
<th>Marca - Referencia</th>
<th>Correo</th>
<th>Contraseña Gmail</th>
<th>IMEI 1</th>
<th>IMEI 2</th>
<th>Número Celular</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php while ($row = $query->fetch_assoc()): ?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= $row['fecha_entrega'] ?></td>
<td><strong><?= htmlspecialchars($row['nombre']) ?></strong></td>
<td><?= htmlspecialchars($row['documento']) ?></td>
<td><?= htmlspecialchars($row['cargo']) ?></td>
<td><?= htmlspecialchars($row['area']) ?></td>
<td><?= htmlspecialchars($row['ciudad']) ?></td>
<td><?= htmlspecialchars($row['valor']) ?></td>
<td><?= htmlspecialchars($row['marca_referencia']) ?></td>
<td><?= htmlspecialchars($row['correo_celular']) ?></td>
<td>
<span class="contrasena-oculta"><?= htmlspecialchars($row['contrasena_gmail']) ?></span>
<button class="btn-copiar" onclick="copiarContrasena('<?= htmlspecialchars($row['contrasena_gmail'], ENT_QUOTES) ?>')">
<i class="far fa-copy"></i> Copiar
</button>
<button class="btn-mostrar" onclick="mostrarContrasena(this)">
<i class="far fa-eye"></i> Mostrar
</button>
</td>
<td><?= htmlspecialchars($row['imei1']) ?></td>
<td><?= htmlspecialchars($row['imei2']) ?></td>
<td><?= htmlspecialchars($row['numero_celular']) ?></td>
<td>
<button class="btn-editar" onclick="openEditModal(
'<?= $row['id'] ?>',
'<?= htmlspecialchars($row['fecha_entrega'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['nombre'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['documento'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['cargo'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['area'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['ciudad'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['valor'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['marca_referencia'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['correo_celular'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['contrasena_gmail'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['imei1'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['imei2'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['numero_celular'], ENT_QUOTES) ?>'
)">
<i class="fas fa-edit"></i> Editar
</button>
</td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
</div>
</div>
<?php else: ?>
<div class="no-results">
<p>No se encontraron registros por <?= $tipo_busqueda == 'nombre' ? 'el Nombre' : 'el Correo Celular' ?>: <strong><?= htmlspecialchars($valor_busqueda) ?></strong></p>
</div>
<?php endif; ?>
<?php else: ?>
<div class="info-message">
<p>Ingrese el <?= $tipo_busqueda == 'nombre' ? 'Nombre del Colaborador' : 'Correo Celular' ?> para Consultar</p>
</div>
<?php endif; ?>
</div>
<!-- Modal para edición - Mejorado para pantallas pequeñas -->
<div id="editModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeEditModal()">×</span>
<h2 style="color: #025159; margin-bottom: 20px; padding-right: 30px;">Editar Información de Celular Corporativo</h2>
<form id="editForm" method="POST" action="">
<input type="hidden" id="editId" name="id">
<div class="form-row">
<div class="form-field">
<label>Fecha Entrega:</label>
<input type="text" id="editFechaEntrega" name="fecha_entrega" required>
</div>
<div class="form-field">
<label>Nombre:</label>
<input type="text" id="editNombre" name="nombre" required>
</div>
<div class="form-field">
<label>Cédula:</label>
<input type="text" id="editDocumento" name="documento" required>
</div>
</div>
<div class="form-row">
<div class="form-field">
<label>Cargo:</label>
<input type="text" id="editCargo" name="cargo" required>
</div>
<div class="form-field">
<label>Área:</label>
<input type="text" id="editArea" name="area" required>
</div>
<div class="form-field">
<label>Ciudad:</label>
<input type="text" id="editCiudad" name="ciudad" required>
</div>
</div>
<div class="form-row">
<div class="form-field">
<label>Valor:</label>
<input type="text" id="editValor" name="valor" required>
</div>
<div class="form-field">
<label>Marca - Referencia:</label>
<input type="text" id="editMarcaReferencia" name="marca_referencia" required>
</div>
<div class="form-field">
<label>Correo:</label>
<input type="text" id="editCorreoCelular" name="correo_celular" required>
</div>
</div>
<div class="form-row">
<div class="form-field">
<label>Contraseña Gmail:</label>
<input type="text" id="editContrasenaGmail" name="contrasena_gmail" required>
</div>
<div class="form-field">
<label>IMEI 1:</label>
<input type="text" id="editImei1" name="imei1" required>
</div>
<div class="form-field">
<label>IMEI 2:</label>
<input type="text" id="editImei2" name="imei2" required>
</div>
</div>
<div class="form-row">
<div class="form-field">
<label>Número Celular:</label>
<input type="text" id="editNumeroCelular" name="numero_celular" required>
</div>
</div>
<div class="modal-actions">
<button type="button" class="btn-cancelar" onclick="closeEditModal()">
<i class="fas fa-times"></i> Cancelar
</button>
<button type="submit" class="btn-actualizar" name="actualizar">
<i class="fas fa-save"></i> Actualizar
</button>
</div>
</form>
</div>
</div>
<!-- Notificación toast -->
<div id="toast" class="toast"></div>
<!-- Script para inicializar DataTables y funciones personalizadas -->
<script>
$(document).ready(function () {
<?php if($mostrarTabla && $query && $query->num_rows > 0): ?>
$('#tablaPersonas').DataTable({
"paging": true,
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "Todos"]],
"searching": true,
"language": {
"url": "//cdn.datatables.net/plug-ins/1.11.5/i18n/Spanish.json"
},
"order": [[0, 'desc']],
"autoWidth": false,
"responsive": true,
"dom": '<"top"lf>rt<"bottom"ip><"clear">',
"scrollX": true
});
<?php endif; ?>
// Cambiar el label cuando cambia el tipo de búsqueda
$('#tipo_busqueda').change(function() {
var tipo = $(this).val();
var labelText = tipo == 'nombre' ? 'Nombre del Colaborador' : 'Correo Celular';
$('#label_valor').text('Ingrese el ' + labelText + ':');
$('#valor_busqueda').attr('placeholder', 'Ingrese el ' + (tipo == 'nombre' ? 'nombre del colaborador' : 'correo celular'));
});
});
// Función para abrir el modal de edición
function openEditModal(id, fecha_entrega, nombre, documento, cargo, area, ciudad, valor, marca_referencia, correo_celular, contrasena_gmail, imei1, imei2, numero_celular) {
document.getElementById('editId').value = id;
document.getElementById('editFechaEntrega').value = fecha_entrega;
document.getElementById('editNombre').value = nombre;
document.getElementById('editDocumento').value = documento;
document.getElementById('editCargo').value = cargo;
document.getElementById('editArea').value = area;
document.getElementById('editCiudad').value = ciudad;
document.getElementById('editValor').value = valor;
document.getElementById('editMarcaReferencia').value = marca_referencia;
document.getElementById('editCorreoCelular').value = correo_celular;
document.getElementById('editContrasenaGmail').value = contrasena_gmail;
document.getElementById('editImei1').value = imei1;
document.getElementById('editImei2').value = imei2;
document.getElementById('editNumeroCelular').value = numero_celular;
document.getElementById('editModal').style.display = 'block';
document.body.style.overflow = 'hidden'; // Previene el scroll del fondo
}
// Función para cerrar el modal de edición
function closeEditModal() {
document.getElementById('editModal').style.display = 'none';
document.body.style.overflow = 'auto'; // Restaura el scroll del fondo
}
// Función para copiar la contraseña al portapapeles
function copiarContrasena(contrasena) {
// Crear un elemento temporal para copiar
const tempInput = document.createElement("input");
tempInput.value = contrasena;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
// Mostrar notificación
mostrarToast("Contraseña copiada al portapapeles");
}
// Función para mostrar/ocultar la contraseña
function mostrarContrasena(boton) {
const contrasenaSpan = boton.parentElement.querySelector('.contrasena-oculta');
const icono = boton.querySelector('i');
if(contrasenaSpan.style.filter === 'blur(4px)' || !contrasenaSpan.style.filter) {
contrasenaSpan.style.filter = 'none';
icono.className = 'far fa-eye-slash';
boton.innerHTML = '<i class="far fa-eye-slash"></i> Ocultar';
} else {
contrasenaSpan.style.filter = 'blur(4px)';
icono.className = 'far fa-eye';
boton.innerHTML = '<i class="far fa-eye"></i> Mostrar';
}
}
// Función para mostrar notificación toast
function mostrarToast(mensaje) {
const toast = document.getElementById('toast');
toast.textContent = mensaje;
toast.style.display = 'block';
setTimeout(() => {
toast.style.display = 'none';
}, 2000);
}
// Cierra el modal si se hace clic fuera del contenido
window.onclick = function(event) {
var modal = document.getElementById('editModal');
if (event.target == modal) {
closeEditModal();
}
}
// Cierra el modal con la tecla Escape
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
closeEditModal();
}
});
// Mejorar la experiencia en móviles
document.addEventListener('DOMContentLoaded', function() {
// Ajustar inputs en móviles
if (window.innerWidth < 768) {
const inputs = document.querySelectorAll('input[type="text"], select');
inputs.forEach(input => {
input.addEventListener('focus', function() {
setTimeout(() => {
this.scrollIntoView({ behavior: 'smooth', block: 'center' });
}, 300);
});
});
}
});
</script>
<div class="copyright">
© Avicampo <?php echo date('Y'); ?>
</div>
</body>
</html>