gpt4 book ai didi

php - 无法将隐藏的表单值从数据库传递到 PHP if 语句

转载 作者:可可西里 更新时间:2023-11-01 07:14:44 24 4
gpt4 key购买 nike

我的数据库表(相关)包含 3 列:

  • related_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

有人能解决这个问题吗?应该不会那么难吧?

最佳答案

解释

你有一个 <form>对于整个表,其中包括(比如说)一打 <input type="hidden" name="hidden-id" value="...">

当提交表单时,这些值将全部发送到服务器(您如何期望它知道只发送紧挨着被按下的特定 hidden-id 按钮的 submit?)这就是为什么你只看到最后 hidden-id – 它们都被发送了,所以最后一个覆盖/获胜。

解决方案

一个解决方案是拥有一个 <form>每行而不是一行 <form>对于整个表:

foreach ($result as $related) {

echo '<form method="POST" action="...">';

echo '
<input type="hidden" name="hidden-id" value="' . $related['related_id'] . '">
<input type="submit" name="deleteRelated" value="x">';

echo '</form>';

}

这样,只有 hidden-id将发送按下的按钮的值。

关于php - 无法将隐藏的表单值从数据库传递到 PHP if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com