当前位置:首页 > PHP

php实现待办

2026-02-14 19:00:10PHP

PHP 实现待办事项功能

使用 PHP 实现待办事项功能需要结合数据库操作和前端交互。以下是一个简单的实现方法:

数据库设计

创建一张 todos 表,包含以下字段:

  • id: 主键,自增
  • task: 任务内容
  • completed: 完成状态,默认为 0
  • created_at: 创建时间
CREATE TABLE todos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    task VARCHAR(255) NOT NULL,
    completed TINYINT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

连接数据库

$host = 'localhost';
$dbname = 'todo_db';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("数据库连接失败: " . $e->getMessage());
}

添加待办事项

if (isset($_POST['add_task'])) {
    $task = trim($_POST['task']);

    if (!empty($task)) {
        $stmt = $pdo->prepare("INSERT INTO todos (task) VALUES (:task)");
        $stmt->execute([':task' => $task]);
    }
}

显示待办事项

$stmt = $pdo->query("SELECT * FROM todos ORDER BY created_at DESC");
$todos = $stmt->fetchAll(PDO::FETCH_ASSOC);

标记完成/未完成

if (isset($_GET['toggle'])) {
    $id = $_GET['toggle'];
    $stmt = $pdo->prepare("UPDATE todos SET completed = 1 - completed WHERE id = :id");
    $stmt->execute([':id' => $id]);
    header("Location: index.php");
    exit();
}

删除待办事项

if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    $stmt = $pdo->prepare("DELETE FROM todos WHERE id = :id");
    $stmt->execute([':id' => $id]);
    header("Location: index.php");
    exit();
}

前端示例

php实现待办

<form method="post">
    <input type="text" name="task" placeholder="添加新任务..." required>
    <button type="submit" name="add_task">添加</button>
</form>

<ul>
    <?php foreach ($todos as $todo): ?>
    <li>
        <span style="<?= $todo['completed'] ? 'text-decoration: line-through' : '' ?>">
            <?= htmlspecialchars($todo['task']) ?>
        </span>
        <a href="?toggle=<?= $todo['id'] ?>"><?= $todo['completed'] ? '未完成' : '完成' ?></a>
        <a href="?delete=<?= $todo['id'] ?>">删除</a>
    </li>
    <?php endforeach; ?>
</ul>

安全注意事项

  1. 使用预处理语句防止 SQL 注入
  2. 对输出内容使用 htmlspecialchars() 防止 XSS 攻击
  3. 重要操作应验证用户权限
  4. 考虑使用 CSRF 令牌保护表单

扩展功能建议

  1. 添加任务分类功能
  2. 实现任务优先级
  3. 添加截止日期提醒
  4. 实现用户系统,使每个用户有自己的待办列表
  5. 添加搜索和过滤功能

这个基本实现可以进一步扩展为完整的待办事项应用。根据需求可以调整数据库结构和功能逻辑。

标签: php
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie实现记住密码功能 在PHP中,可以通过设置Cookie来记住用户的登录状态。以下是一个简单的实现方式: // 用户登录验证成功后 if ($login_success) {…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Session 是…

php实现文件的下载

php实现文件的下载

PHP 实现文件下载的方法 在 PHP 中实现文件下载功能通常需要设置正确的 HTTP 头信息,并输出文件内容。以下是几种常见的实现方式: 使用 header() 函数强制下载 通过设置 Conte…

php实现推送

php实现推送

PHP 实现推送功能的方法 PHP 实现推送功能可以通过多种方式完成,包括 WebSocket、Server-Sent Events (SSE)、长轮询或第三方推送服务。以下是几种常见的方法: 使用…