File "fetch_dependents.php"

Full Path: C:/wamp64/www/PERSONAL/Personal/fetch_dependents.php
File size: 2 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// Incluir el archivo de conexión
include('../connection.php');

// Recuperar parámetros de la solicitud AJAX
$ccosto = $_GET['ccosto'] ?? '';
$descripcion = $_GET['descripcion'] ?? '';
$search = isset($_GET['q']) ? $_GET['q'] : '';
$field = $_GET['field'] ?? ''; // 'descripcion' o 'cargo'

$search_term = "%" . $search . "%";

$data = [];
$sql = "";
$params = [];
$types = "";

if ($field === 'descripcion' && !empty($ccosto)) {
    // 1. Obtener Descripciones únicas basadas en Centro de Costo
    $sql = "SELECT DISTINCT D_ccosto 
            FROM ccosto 
            WHERE Id_ccosto = ? 
            AND D_ccosto LIKE ?
            ORDER BY D_ccosto ASC";
            
    $params = [$ccosto, $search_term];
    $types = "ss";
    
} elseif ($field === 'cargo' && !empty($ccosto) && !empty($descripcion)) {
    // 2. Obtener Cargos únicos basados en Centro de Costo Y Descripción
    $sql = "SELECT DISTINCT cargo 
            FROM ccosto 
            WHERE Id_ccosto = ? 
            AND D_ccosto = ?
            AND cargo LIKE ?
            ORDER BY cargo ASC";
            
    $params = [$ccosto, $descripcion, $search_term];
    $types = "sss";
}

if ($sql) {
    $stmt = $con->prepare($sql);
    // Bindear los parámetros dinámicamente
    $stmt->bind_param($types, ...$params);
    $stmt->execute();
    $result = $stmt->get_result();

    // Determinar la columna a devolver
    $column_name = ($field === 'descripcion') ? 'D_ccosto' : 'cargo';
    
    while ($row = $result->fetch_assoc()) {
        $item_value = $row[$column_name];
        // Formato requerido por Select2: id y text
        $data[] = [
            'id' => $item_value,    // El valor real a enviar/almacenar
            'text' => $item_value   // Lo que se muestra al usuario
        ];
    }
    $stmt->close();
}

// Cerrar la conexión
mysqli_close($con);

// Devolver la respuesta en formato JSON
header('Content-Type: application/json');
echo json_encode(['results' => $data]);
?>