getConnection(); // AJAX salvataggio singolo if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ajax']) && $_POST['ajax'] == '1') { header('Content-Type: application/json'); if ($_POST['action'] === 'save_single_skill') { $employee_id = (int)($_POST['employee_id'] ?? 0); $skill_id = (int)($_POST['skill_id'] ?? 0); $level = trim($_POST['level'] ?? ''); try { $pdo->prepare("DELETE FROM employee_skills WHERE employee_id = ? AND skill_id = ?") ->execute([$employee_id, $skill_id]); if ($level !== '' && $level !== '–') { $pdo->prepare("INSERT INTO employee_skills (employee_id, skill_id, level) VALUES (?, ?, ?)") ->execute([$employee_id, $skill_id, $level]); } echo json_encode(['success' => true]); } catch (Exception $e) { echo json_encode(['success' => false, 'message' => $e->getMessage()]); } exit; } echo json_encode(['success' => false, 'message' => 'Azione non valida']); exit; } // DATI $employees = $pdo->query(" SELECT id, CONCAT(first_name, ' ', last_name) AS nome FROM employees ORDER BY id ")->fetchAll(PDO::FETCH_ASSOC); $skills = $pdo->query(" SELECT s.id, s.name, COALESCE(s.abbreviato, SUBSTRING(s.name, 1, 12)) AS acronimo, pl.line_number, pl.name AS linea FROM skills s LEFT JOIN production_lines pl ON s.production_line_id = pl.id ORDER BY s.ordinamento ASC, COALESCE(pl.line_number, 999), s.id ")->fetchAll(PDO::FETCH_ASSOC); $livelli = []; $stmt = $pdo->query("SELECT employee_id, skill_id, level FROM employee_skills"); while ($r = $stmt->fetch(PDO::FETCH_ASSOC)) { $livelli[$r['employee_id']][$r['skill_id']] = $r['level']; } ?> Matrice Skills
Matrice Skills
Dipendente UHF BSF Gerlach