trf_certest/public/userarea/process_edit_template_xls.php
2025-03-08 08:34:00 +01:00

53 lines
2.0 KiB
PHP

<?php
header('Content-Type: application/json');
require_once 'class/db-functions.php';
$response = ["success" => false, "message" => ""];
try {
if ($_SERVER["REQUEST_METHOD"] !== "POST") {
throw new Exception("Invalid request method.");
}
// Recupera e sanifica i dati
$id = intval($_POST['id']);
$name = trim($_POST['name']);
$header_row = intval($_POST['header_row']);
$start_column = trim($_POST['start_column']);
$description = trim($_POST['description'] ?? '');
$target_table = trim($_POST['target_table']);
$client_specific_fields = trim($_POST['client_specific_fields'] ?? '{}'); // Recupera il JSON dei campi specifici
// Controllo sui campi obbligatori
if (empty($id) || empty($name) || empty($header_row) || empty($start_column) || empty($target_table)) {
throw new Exception("All fields marked with * are required.");
}
// Validazione opzionale del JSON (per sicurezza)
$decoded_fields = json_decode($client_specific_fields, true);
if (json_last_error() !== JSON_ERROR_NONE && $client_specific_fields !== '{}') {
throw new Exception("Invalid JSON format for client-specific fields.");
}
// Connessione al database
$db = DBHandlerSelect::getInstance();
$pdo = $db->getConnection();
// Aggiorna il database, includendo client_specific_fields
$stmt = $pdo->prepare("UPDATE excel_templates
SET name = ?, header_row = ?, start_column = ?, description = ?, target_table = ?, client_specific_fields = ?, updated_at = NOW()
WHERE id = ?");
$stmt->execute([$name, $header_row, $start_column, $description, $target_table, $client_specific_fields, $id]);
if ($stmt->rowCount() > 0) {
$response["success"] = true;
} else {
throw new Exception("No changes made or update failed.");
}
} catch (Exception $e) {
$response["message"] = $e->getMessage();
}
// Restituisce un JSON per il fetch
echo json_encode($response);