如何根据按下的submit按钮行在PHP中检索td值?
我希望能够看到基于“提交”按钮所在行的td值 这是我的html代码如何根据按下的submit按钮行在PHP中检索td值?,php,html,Php,Html,我希望能够看到基于“提交”按钮所在行的td值 这是我的html代码 <?php foreach($books as $booklist) : ?> <tr> <form action = "." method = "post"> <input type="hidden" name="action" value="addtocart" > <td>&
<?php foreach($books as $booklist) : ?>
<tr>
<form action = "." method = "post">
<input type="hidden" name="action" value="addtocart" >
<td><img height="50" width="50" src=<?php echo "/../../product_manager/uploads/".$booklist['productimage']; ?>></td>
<td><?php echo $booklist['name']; ?></td>
<td><?php echo $booklist['version']; ?></td>
<td><?php echo $booklist['releaseDate']; ?></td>
<td><?php echo $booklist['price']; ?></td>
<td><?php echo $booklist['quantity']; ?></td>
<td><input name="submit" type="submit" value = 'Add to cart'/><td>
</form>
</tr>
<?php endforeach; ?>
我的问题是,它只是在重复最后一行。如果我回显版本、价格等,它只回显名为test的产品。如何根据submit按钮行将其发送到echo?另外,我想严格保持它仅限于php或html。您可以给提交按钮一个基于数组的名称,例如name=“submit[0]”。这样,您可以在循环中使用计数器变量将值分配给submit按钮,并确定按下了哪个按钮
以上是我的建议,您应该将其与单个表单元素一起使用。根据HTML标准,表单不应该包含在tr元素中,而应该只包含在td元素中。因此,表单元素应该包含表,而不是相反 您也可以尝试读取以下值,而不是for循环:
$arr = array_keys($_POST['submit']);
echo $arr[0];
我更新了我的答案,因为一开始我没有意识到您在tr元素中使用了多个表单元素。tr元素中不允许包含表单元素。“tr元素中不应包含表单”即使这是正确的,我怀疑任何浏览器都无法正确呈现页面。在我看来,OP实际上没有在任何地方输出产品ID,因此它正在将最后一个产品添加到卡中。但也许我错了…“表单元素不允许在tr元素中。”-可能不是个好主意,但我不完全同意这一说法。如何将数组分配给提交按钮,给我提交按钮行?@triswill227,因为数组的第一个元素的键
$\u POST['submit']
将是行号。就我个人而言,我更喜欢一个名为“product_id”的隐藏输入元素,但只要能让你的船浮起来就行。
$arr = array_keys($_POST['submit']);
echo $arr[0];