PHP

如何用php搭建一个todolist应用

小樊
83
2024-09-09 01:41:02
栏目: 编程语言

要用PHP搭建一个TodoList应用,你需要遵循以下步骤:

  1. 环境准备 安装Apache、PHP和MySQL。可以使用XAMPP集成环境或者手动配置。确保PHP和MySQL运行正常。

  2. 创建数据库和数据表 在MySQL中创建一个名为"todolist"的数据库,并创建一个名为"tasks"的数据表,包含id(主键,自增),task_name(任务名称)和status(任务状态)三个字段。

CREATE DATABASE todolist;
USE todolist;

CREATE TABLE tasks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    task_name VARCHAR(255) NOT NULL,
    status BOOLEAN DEFAULT 0
);
  1. 连接数据库 在PHP文件中,创建一个函数来连接到MySQL数据库。
function connectDatabase() {
    $servername = "localhost";
    $username = "root";
    $password = ""; // 如果设置了密码,请填写
    $dbname = "todolist";

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    return $conn;
}
  1. 添加任务 创建一个HTML表单,让用户输入任务名称。然后在PHP中处理表单提交,将任务插入到数据库中。
<!-- index.php -->
<!DOCTYPE html>
<html>
<head>
   <title>TodoList</title>
</head>
<body>
    <h1>TodoList</h1>
    <form action="add_task.php" method="post">
       <input type="text" name="task_name" placeholder="添加任务">
       <button type="submit">添加</button>
    </form>
</body>
</html>
// add_task.php
<?php
require_once 'connect.php';

$task_name = $_POST['task_name'];

if (!empty($task_name)) {
    $conn = connectDatabase();
    $stmt = $conn->prepare("INSERT INTO tasks (task_name) VALUES (?)");
    $stmt->bind_param("s", $task_name);
    $stmt->execute();
    header('Location: index.php');
} else {
    echo "任务名称不能为空";
}
?>
  1. 显示任务列表 在index.php中,从数据库查询所有任务并显示在页面上。
// index.php
<?php
require_once 'connect.php';

$conn = connectDatabase();
$result = $conn->query("SELECT * FROM tasks");
?>

<!DOCTYPE html>
<html>
<head>
   <title>TodoList</title>
</head>
<body>
    <h1>TodoList</h1>
    <form action="add_task.php" method="post">
       <input type="text" name="task_name" placeholder="添加任务">
       <button type="submit">添加</button>
    </form>

    <ul>
        <?php while ($row = $result->fetch_assoc()) : ?>
            <li><?php echo $row['task_name']; ?></li>
        <?php endwhile; ?>
    </ul>
</body>
</html>
  1. 完成和删除任务 在任务列表旁边添加复选框和删除按钮,用户可以勾选已完成的任务和删除任务。
<!-- index.php -->
<ul>
    <?php while ($row = $result->fetch_assoc()) : ?>
        <li>
           <input type="checkbox" name="completed" <?php if ($row['status']) echo 'checked'; ?>>
            <?php echo $row['task_name']; ?>
            <a href="delete_task.php?id=<?php echo $row['id']; ?>">删除</a>
        </li>
    <?php endwhile; ?>
</ul>
// delete_task.php
<?php
require_once 'connect.php';

$id = $_GET['id'];

if (!empty($id)) {
    $conn = connectDatabase();
    $stmt = $conn->prepare("DELETE FROM tasks WHERE id = ?");
    $stmt->bind_param("i", $id);
    $stmt->execute();
    header('Location: index.php');
} else {
    echo "无效的ID";
}
?>
  1. 更新任务状态 当用户勾选任务时,更新数据库中任务的状态。
<!-- index.php --><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script>
$(document).ready(function () {
    $('input[type="checkbox"]').change(function () {
        var taskId = $(this).closest('li').data('id');
        var isCompleted = $(this).is(':checked') ? 1 : 0;
        $.ajax({
            url: 'update_task.php',
            type: 'POST',
            data: {id: taskId, status: isCompleted},
            success: function (response) {
                console.log(response);
            }
        });
    });
});
</script>
// update_task.php
<?php
require_once 'connect.php';

$id = $_POST['id'];
$status = $_POST['status'];

if (!empty($id)) {
    $conn = connectDatabase();
    $stmt = $conn->prepare("UPDATE tasks SET status = ? WHERE id = ?");
    $stmt->bind_param("ii", $status, $id);
    $stmt->execute();
    echo "任务状态更新成功";
} else {
    echo "无效的ID";
}
?>

现在你已经创建了一个基本的TodoList应用。你可以根据需要进一步优化和完善功能。

0
看了该问题的人还看了