处理todo数据的一种常见方法是使用数据库来存储和管理todo列表。以下是一个简单的示例,演示如何在PHP中有效地处理todo数据:
todos
的表:CREATE TABLE todos (
id INT AUTO_INCREMENT PRIMARY KEY,
task VARCHAR(255) NOT NULL,
completed BOOLEAN NOT NULL DEFAULT false
);
<?php
// 连接到数据库
$pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'username', 'password');
// 添加一个todo任务
if ($_POST['action'] == 'add_todo') {
$task = $_POST['task'];
$stmt = $pdo->prepare('INSERT INTO todos (task) VALUES (:task)');
$stmt->execute(['task' => $task]);
}
// 更新todo任务的完成状态
if ($_POST['action'] == 'update_todo') {
$id = $_POST['id'];
$completed = $_POST['completed'];
$stmt = $pdo->prepare('UPDATE todos SET completed = :completed WHERE id = :id');
$stmt->execute(['completed' => $completed, 'id' => $id]);
}
// 获取所有todo任务
$stmt = $pdo->query('SELECT * FROM todos');
$todos = $stmt->fetchAll();
?>
<!-- 显示todo列表 -->
<ul>
<?php foreach ($todos as $todo): ?>
<li>
<input type="checkbox" <?= $todo['completed'] ? 'checked' : '' ?> onclick="updateTodo(<?= $todo['id'] ?>, this.checked)">
<?= $todo['task'] ?>
</li>
<?php endforeach; ?>
</ul>
<!-- 添加todo表单 -->
<form method="post" action="">
<input type="text" name="task" required>
<button type="submit" name="action" value="add_todo">Add Todo</button>
</form>
<!-- 更新todo任务的JavaScript函数 -->
<script>
function updateTodo(id, completed) {
fetch('todo.php', {
method: 'POST',
body: JSON.stringify({
id: id,
completed: completed,
action: 'update_todo'
})
});
}
</script>
在上面的示例中,我们使用PDO来连接到数据库,并在页面中显示todo列表。用户可以添加新的todo任务,并通过复选框来标记任务的完成状态。当用户勾选或取消勾选复选框时,JavaScript函数将通过AJAX请求更新数据库中的数据。