File "buscarNAS.php.bak"
Full Path: C:/wamp64/www/sistemas/NAS/buscarNAS.php.bak
File size: 18.74 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'];
$nombre_colaborador = $_POST['nombre_colaborador'];
$cargo_colaborador = $_POST['cargo_colaborador'];
$ID_QNAS = $_POST['ID_QNAS'];
$contrasena = $_POST['contrasena'];
$estado = $_POST['estado'];
$sql = "UPDATE NAS SET nombre_colaborador=?, cargo_colaborador=?, ID_QNAS=?, contrasena=?, estado=? WHERE id=?";
$stmt = $con->prepare($sql);
$stmt->bind_param("sssssi", $nombre_colaborador, $cargo_colaborador, $ID_QNAS, $contrasena, $estado, $id);
$stmt->execute();
// Recargar la página con los mismos parámetros de búsqueda
header("Location: ".$_SERVER['PHP_SELF']."?nombre_colaborador=".urlencode($nombre_colaborador));
exit();
}
$mostrarTabla = false;
$query = null;
$nombre_colaborador = isset($_GET['nombre_colaborador']) ? $_GET['nombre_colaborador'] : '';
// Verificar si se ha enviado una búsqueda
if(isset($_POST['buscar']) && !empty($_POST['nombre_colaborador'])) {
$nombre_colaborador = $_POST['nombre_colaborador'];
$mostrarTabla = true;
// Usamos LIKE para búsqueda parcial y agregamos % alrededor del valor
$nombre_like = "%".$nombre_colaborador."%";
$sql = "SELECT * FROM NAS WHERE nombre_colaborador LIKE ? ORDER BY id DESC";
$stmt = $con->prepare($sql);
$stmt->bind_param("s", $nombre_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 Usuario NAS">
<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>usuarios NAS</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: Arial, sans-serif;
margin: 0;
padding: 20px;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
.search-form {
background-color: #f8f9fa;
padding: 20px;
border-radius: 5px;
margin-bottom: 20px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.search-form h3 {
margin-top: 0;
color: #333;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.form-group input[type="text"] {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
box-sizing: border-box;
font-size: 16px;
}
.form-group input[type="submit"] {
background-color: coral;
color: white;
border: none;
padding: 10px 15px;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
.form-group input[type="submit"]:hover {
background-color: coral;
}
.button-container {
margin: 15px 0;
}
.button-container input[type="button"] {
padding: 8px 15px;
margin-right: 10px;
cursor: pointer;
background-color: coral;
color: white;
border: none;
border-radius: 4px;
}
.button-container input[type="button"]:hover {
background-color: coral;
}
.no-results {
padding: 20px;
background-color: #f8d7da;
color: #721c24;
border-radius: 5px;
margin-top: 20px;
}
.info-message {
padding: 20px;
background-color: #d1ecf1;
color: #0c5460;
border-radius: 5px;
margin-top: 20px;
}
.users-table {
width: 100%;
overflow-x: auto;
}
table.display {
width: 100%;
border-collapse: collapse;
}
table.display th, table.display td {
padding: 8px;
text-align: left;
border: 1px solid #ddd;
}
table.display th {
background-color: #f2f2f2;
}
.copyright {
text-align: center;
margin-top: 30px;
color: #666;
font-size: 14px;
}
/* Estilos para los botones */
.btn-editar {
padding: 5px 10px;
background-color: coral;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
.btn-editar:hover {
background-color: #e55b4a;
}
.btn-copiar {
margin-left: 5px;
padding: 3px 8px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
}
.btn-copiar:hover {
background-color: #45a049;
}
.btn-mostrar {
margin-left: 5px;
padding: 3px 8px;
background-color: #2196F3;
color: white;
border: none;
border-radius: 3px;
cursor: pointer;
}
.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: 10px 20px;
border-radius: 5px;
z-index: 1000;
display: none;
}
/* Estilos 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);
}
.modal-content {
background-color: #fefefe;
margin: 10% auto;
padding: 20px;
border: 1px solid #888;
width: 50%;
border-radius: 5px;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
cursor: pointer;
}
.close:hover {
color: black;
}
.modal-row {
margin-bottom: 15px;
}
.modal-row label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.modal-row input, .modal-row select {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
}
</style>
</head>
<body>
<div class="container">
<h2>Consultar Usuario NAS Por Nombre Colaborador</h2>
<div class="search-form">
<h3>Buscar Usuario NAS Por Nombre Colaborador</h3>
<form method="POST" action="">
<div class="form-group">
<label for="nombre_colaborador">Nombre:</label>
<input type="text" id="nombre_colaborador" name="nombre_colaborador" value="<?= htmlspecialchars($nombre_colaborador) ?>" placeholder="Ingrese El Nombre Del Colaborador" 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ú">
<input type="button" onclick="window.location.href='generarExcel.php';" value="Generar Excel">
</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>Colaborador</th>
<th>Cargo</th>
<th>Usuario QNAS</th>
<th>Contraseña</th>
<th>Estado</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php while ($row = $query->fetch_assoc()): ?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= htmlspecialchars($row['nombre_colaborador']) ?></td>
<td><?= htmlspecialchars($row['cargo_colaborador']) ?></td>
<td><?= htmlspecialchars($row['ID_QNAS']) ?></td>
<td>
<span class="contrasena-oculta"><?= htmlspecialchars($row['contrasena']) ?></span>
<button class="btn-copiar" onclick="copiarContrasena('<?= htmlspecialchars($row['contrasena'], 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['estado']) ?></td>
<td>
<button class="btn-editar" onclick="openEditModal(
'<?= $row['id'] ?>',
'<?= htmlspecialchars($row['nombre_colaborador'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['cargo_colaborador'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['ID_QNAS'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['contrasena'], ENT_QUOTES) ?>',
'<?= htmlspecialchars($row['estado'], 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 del Usuario NAS: <strong><?= htmlspecialchars($nombre_colaborador) ?></strong></p>
</div>
<?php endif; ?>
<?php else: ?>
<div class="info-message">
<p>Ingrese el Nombre Del Colaborador para Consultar el Usuario NAS</p>
</div>
<?php endif; ?>
</div>
<!-- Modal para edición -->
<div id="editModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeEditModal()">×</span>
<h2>Editar Usuario NAS</h2>
<form id="editForm" method="POST" action="">
<input type="hidden" id="editId" name="id">
<div class="modal-row">
<label>Nombre Colaborador:</label>
<input type="text" id="editNombreColaborador" name="nombre_colaborador">
</div>
<div class="modal-row">
<label>Cargo Colaborador:</label>
<input type="text" id="editCargoColaborador" name="cargo_colaborador">
</div>
<div class="modal-row">
<label>Usuario QNAS:</label>
<input type="text" id="editIDQNAS" name="ID_QNAS">
</div>
<div class="modal-row">
<label>Contraseña:</label>
<input type="text" id="editContrasena" name="contrasena">
</div>
<div class="modal-row">
<label>Estado:</label>
<select id="editEstado" name="estado" style="width:100%; padding:8px; border-radius:4px;">
<option value="Activo">Activo</option>
<option value="Inactivo">Inactivo</option>
</select>
</div>
<div style="text-align:right; margin-top:20px;">
<button type="button" onclick="closeEditModal()" style="padding:8px 15px; margin-right:10px; background-color:#ccc; color:#333; border:none; border-radius:4px; cursor:pointer;">
<i class="fas fa-times"></i> Cancelar
</button>
<button type="submit" name="actualizar" style="padding:8px 15px; background-color:coral; color:white; border:none; border-radius:4px; cursor:pointer;">
<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
});
<?php endif; ?>
});
// Función para abrir el modal de edición
function openEditModal(id, nombre_colaborador, cargo_colaborador, ID_QNAS, contrasena, estado) {
document.getElementById('editId').value = id;
document.getElementById('editNombreColaborador').value = nombre_colaborador;
document.getElementById('editCargoColaborador').value = cargo_colaborador;
document.getElementById('editIDQNAS').value = ID_QNAS;
document.getElementById('editContrasena').value = contrasena;
document.getElementById('editEstado').value = estado;
document.getElementById('editModal').style.display = 'block';
}
// Función para cerrar el modal de edición
function closeEditModal() {
document.getElementById('editModal').style.display = 'none';
}
// 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();
}
}
</script>
<div class="copyright">
© Avicampo <?php echo date('Y'); ?>
</div>
</body>
</html>