我有table
在foreach
循环中,每次迭代隐藏input
都会从数据库中接收ID。我的表在每列中都有一个input
字段,因为我想在表格中编辑数据库中的数据,为了实现这一点,我必须在点击检索时提交一个提交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
值始终是表中的第一个,因为 n 隐藏input
具有相同的名称。
我想知道是否有办法从点击的行中检索隐藏的input
值,但请记住我没有使用$_GET
,而是提交{{ 1}},
button
单击时,用来执行我写的代码:
<button type="submit" name="submit" value="update" class="btn_action">Editar</button>
谢谢。
答案 0 :(得分:1)
如果您想要多个具有相同名称的输入,请使用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>
答案 1 :(得分:0)
将每个col包装在一个单独的表单中,每个col都有一个单独的提交按钮,或者将name属性设置为一个数组。即name="id[<?php echo htmlspecialchars($id); ?>"
答案 2 :(得分:0)
我建议您使用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
});