【发布时间】:2014-12-03 05:20:07
【问题描述】:
我的数据库表(相关)包含 3 列:
- related_id
- article_id
- object_id
这是一个跟踪文章和对象之间关系的表格。我已经剥离了代码。现在它只包含删除按钮 (x)。如果有人按下该按钮,我希望将用户重定向到 if(isset($_POST['deleteRelated'])) 以获取“您确定”消息等。但是隐藏的 ID 未正确传递。表中最后一个related_id 是29。当我尝试回显隐藏的 ID 时,我只会为每个删除按钮 (x) 获得 29。
下面代码的完整版本为我提供了一个包含文章标题、对象标题和删除按钮 (x) 的表格。由于提交按钮本身不能传递值,我需要一个隐藏值。但是当我通过按删除按钮 (x) 传递它时,我每次都会得到 29。
代码
if(isset($_POST['deleteRelated'])) {
echo $_POST['hidden-id']; // Will just display the last 'related_id' value.
else {
echo '
<form method="post">';
$stmt = $db->prepare("SELECT * FROM Related");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $related) {
echo '
<input type="hidden" name="hidden-id" value="' . $related['related_id'] . '">
<input type="submit" name="deleteRelated" value="x">';
}
echo '
</form>';
}
如果我输入:
<input type="submit" name="deleteRelated" value="' . $related['related_id'] . '">
它将显示来自数据库的正确值,而不是删除/提交按钮的 x。但是当我按下删除/提交按钮时,我只会得到最后一个 related_id,即 29。
有人可以解决这个问题吗?应该没那么难吧?
【问题讨论】:
标签: php html mysql if-statement pdo