false, "message" => ""]; try { if ($_SERVER["REQUEST_METHOD"] !== "POST") { throw new Exception("Invalid request method."); } // Recupera e sanifica i dati $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']); $button_size = trim($_POST['button_size'] ?? 'medium'); $button_bg_color = trim($_POST['button_bg_color'] ?? '#007bff'); $button_text_color = trim($_POST['button_text_color'] ?? '#ffffff'); $button_label = trim($_POST['button_label'] ?? 'Click Me'); $idclient = intval($_POST['client_id'] ?? 0); // Usa client_id dal form $clientname = trim($_POST['client_name'] ?? ''); // Usa client_name dal form $status = 'active'; // Default // Recupera i client_specific_fields (JSON inviato dal form) $client_specific_fields = trim($_POST['client_specific_fields'] ?? '{}'); // Decodifica il JSON per verificare che sia valido (opzionale, per sicurezza) $decoded_fields = json_decode($client_specific_fields, true); if (json_last_error() !== JSON_ERROR_NONE && !empty($client_specific_fields)) { throw new Exception("Invalid JSON format for client-specific fields."); } // Controllo sui campi obbligatori if (empty($name) || empty($header_row) || empty($start_column) || empty($target_table)) { throw new Exception("All fields marked with * are required."); } // Validazione del idclient if ($idclient <= 0) { throw new Exception("Please select a valid client."); } // Connessione al database $db = DBHandlerSelect::getInstance(); $pdo = $db->getConnection(); // Inserisci nel database, usando idclient e clientname $stmt = $pdo->prepare("INSERT INTO excel_templates (name, header_row, start_column, description, target_table, button_size, button_bg_color, button_text_color, button_label, idclient, clientname, status, client_specific_fields, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())"); $stmt->execute([ $name, $header_row, $start_column, $description, $target_table, $button_size, $button_bg_color, $button_text_color, $button_label, $idclient, $clientname, $status, $client_specific_fields ]); if ($stmt->rowCount() > 0) { $response["success"] = true; $response["message"] = "Template created successfully!"; } else { throw new Exception("Failed to insert template."); } } catch (Exception $e) { $response["message"] = $e->getMessage(); } // Restituisce un JSON per il fetch echo json_encode($response);