prepare($sql); $stmt->execute([$name, $amount, $type, $day, $month, $cat, $is_estimate, $id]); } else { // Insert : on ajoute is_estimate $sql = "INSERT INTO pf_budget_items (name, amount, type, payment_day, reg_month, category, is_estimate) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$name, $amount, $type, $day, $month, $cat, $is_estimate]); } // Redirection après sauvegarde classique header('Location: /budget.php?tab=recap'); exit; } // --- ACTION : COCHER/DÉCOCHER RAPIDE (VIA JS FETCH) --- if ($action === 'toggle-check') { $id = $_POST['id']; $status = $_POST['status']; // 1 ou 0 $sql = "UPDATE pf_budget_items SET is_checked = ? WHERE id = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$status, $id]); // On renvoie du JSON car c'est un appel JS (pas de redirection) header('Content-Type: application/json'); echo json_encode(['success' => true]); exit; } // --- ACTION : SUPPRIMER --- if ($action === 'delete') { $id = $_POST['id']; $pdo->prepare("DELETE FROM pf_budget_items WHERE id = ?")->execute([$id]); // On peut répondre en JSON pour le JS ou rediriger if (isset($_POST['ajax'])) { header('Content-Type: application/json'); echo json_encode(['success' => true]); } else { header('Location: /budget.php?tab=recap'); } exit; } }