php - PHP/HTML 按钮仅适用于循环中的第一个元素
问题描述
我正在学习 PHP,现在卡住了。在 while 循环中,显示所有待办事项。这些元素中的每一个都有一个删除按钮和一个检查按钮。删除按钮适用于每个元素,但检查按钮仅适用于第一个元素。检查按钮用于检查元素。按下检查按钮时,将显示一条错误消息,指出无法删除此元素。仅在第一个元素中当然不是。我找不到错误。
我怀疑索引中有问题
<?php
$todos = $conn->query("SELECT * FROM todos ORDER BY id DESC");
?>
<div class="show-todo-section">
<?php if($todos->rowCount() <= 0){ ?>
<div class="todo-item">
<div class="empty">
<img src="img/f.png" width="100%" />
<img src="img/Ellipsis.gif" width="80px">
</div>
</div>
<?php } ?>
<?php while($todo = $todos->fetch(PDO::FETCH_ASSOC)) { ?>
<div class="todo-item">
<form action="app/checked.php" method="POST">
<button class="check-box" value="<?php echo $todo['id']; ?>" name='checked' type="submit">Check</button>
</form>
<form action="app/delete.php" method="POST">
<button class="remove-to-do" value="<?php echo $todo['id']; ?>" name='delete' type="submit">x</button>
</from>
<?php if($todo['checked']){ ?>
<h2 class="checked"><?php echo $todo['title'] ?></h2>
<?php }else { ?>
<h2><?php echo $todo['title'] ?></h2>
<?php } ?>
<small>created: <?php echo $todo['date_time'] ?></small>
<?php for ($i = 1; $i <= $todo['coins']; $i++) {
echo "<img class='coins' src='img/coin.gif' width='40px' />";
} ?>
</div>
<?php } ?>
</div>
已检查的.php
<?php
if (isset($_POST['checked'])) {
require '../db_conn.php';
$id = $_POST['checked'];
if(empty($id)){
header("Location: ../index.php?mess=errorChecked". $id);
}else{
$todos = $conn->prepare("SELECT id, checked FROM todos WHERE id=?");
$todos->execute([$id]);
$todo = $todos->fetch();
$uId = $todo['id'];
$checked = $todo['checked'];
$uChecked = $checked ? 0 : 1;
$res = $conn->query("UPDATE todos SET checked=$uChecked WHERE id=$uId");
header("Location: ../index.php?mess=successChecked");
$conn = null;
exit();
}
} else{
header("Location: ../index.php?mess=errorChecked");
}
解决方案
推荐阅读
- ubuntu - 如何增加 Homestead Vagrant 的存储空间?
- mongodb - MongoDB 在集合的每个文档中过滤数组字段
- python - 将numpy数组读取为全部小写
- javascript - javascript - 如何在数组中添加具有值的新项目
- python - 如何检查文件中的字符串是否包含某些字符?
- ruby - 如何计算我的 RSpec 测试中的示例数量?
- android - 在 Android Studio 中将 java 库转换为 Android 库
- c# - 从不在调试中的文件夹中获取 txt 文件的问题
- graphviz - 在水平线上指定节点
- r - 直到单词第一次出现的数据集