'Category ID is required']); exit(); } $categoryId = intval($_GET['category_id']); try { $stmt = $conn->prepare("SELECT id, name FROM expense_heads WHERE category_id = ? ORDER BY name"); $stmt->bind_param("i", $categoryId); $stmt->execute(); $result = $stmt->get_result(); $heads = $result->fetch_all(MYSQLI_ASSOC); $stmt->close(); echo json_encode($heads); } catch (Exception $e) { echo json_encode(['error' => 'Database error']); error_log("Get expense heads error: " . $e->getMessage()); } $conn->close(); ?>