PHP - 通过 $_POST 检索其他几个隐藏输入的值

PHP - Retrieve via $_POST the hidden input's value between several others

我有一个 tableforeach 循环中,每次迭代隐藏的 input 从数据库接收 ID。我的 table 在每一列中都有一个 input 字段,因为我想在 table 中编辑数据库中的数据,为了实现它,我必须提交一个 button 当点击时从隐藏的 input 检索 ID 到另一个文件,然后执行操作。

<form action="../php/Operations.php" method="post">
//...
<?php foreach ($Service->select() as $col) { ?>
<input type="hidden" value="<?php echo $col["id"]; ?>" name="id"/>
//...

问题是 $_POST 值始终是 table 的第一个值,因为有 n 隐藏 input同名

我想知道是否有办法从单击的行中检索隐藏的 input 值,请记住我没有使用 $_GET,而是提交button,

<button type="submit" name="submit" value="update" class="btn_action">Editar</button>

点击后会执行我写的代码:

switch($_REQUEST["submit"]) {
    case "update":
        $ServiceDatabase->update($_POST["id"]);
        break;
//...

谢谢。

要么将每个列包装在单独的表单中,并为每个列设置一个单独的提交按钮,要么将名称属性设为一个数组。即 name="id[<?php echo htmlspecialchars($id); ?>"

如果您想要多个具有相同名称的输入,请对输入名称属性使用 name="id[]"$_POST 然后将包含一个名称数组,其中包含输入元素的所有值。然后你可以遍历这个数组。

示例:

<form method="post">
    <input type="hidden" name="id[]" value="foo"/>
    <input type="hidden" name="id[]" value="bar"/>
    <input type="hidden" name="id[]" value="baz"/>
    <input type="submit" />
</form>

PHP

$ids= $_POST['id'];
print_r($ids);

编辑: 您可以像这样更改您的代码,以便每个提交按钮都与一个带有 name="id".

的隐藏输入相关联
<?php foreach ($Service->select() as $col) { ?>
    <form action="../php/Operations.php" method="post">
    <input type="hidden" value="<?php echo $col["id"]; ?>" name="id"/>
    <button type="submit" name="submit" value="update" class="btn_action">Editar</button>
    </form>
<?php } ?>

已渲染 HTML:

<form action="../php/Operations.php" method="post"><input type="hidden" value="1234" name="id"/><button type="submit" name="submit" value="update" class="btn_action">Editar</button></form>
<form action="../php/Operations.php" method="post"><input type="hidden" value="5678" name="id"/><button type="submit" name="submit" value="update" class="btn_action">Editar</button></form>
<form action="../php/Operations.php" method="post"><input type="hidden" value="9101112" name="id"/><button type="submit" name="submit" value="update" class="btn_action">Editar</button></form>

我建议您使用 ajax 提交数据

只需为按钮创建一个点击事件并获取按钮 ID

在您的 htm 表单中创建一个像这样的 id 属性

<input type="hidden" id="colId<?php echo $col["id"]; ?>" value="<?php echo $col["id"]; ?>" />

你的按钮应该是这样的

<button class="buttonSubmit" id="<?php echo $col["id"]; ?>" >Submit</button>
$(".buttonSubmit").click(function(){
   var id = $(this).attr("id");
   var hiddeninput = $("colId"+id).val();
   // here you can process how would you send the data to a php file 
});