我有一个动态表,它设置在 foreach 中,因此对于获取的数组的每个项目创建一个新行。我在最后一列中每行都有一个按钮。当单击该提交按钮时,我应该会收到 PHP 中的 id。提交已正确完成,但我在 PHP 中收到错误的 id。它基本上在提交时获取数组的最后一个 id。知道为什么吗?这是表格:<form method="post" id="frm-example" action="<?php echo $_SERVER["PHP_SELF"] . '?' . e(http_build_query($_GET)); ?>"> <table id="example" class="display compact"> <thead> <th>Device</th> <th>Sales date</th> <th>Client comments</th> <th>Breakage count</th> </thead> <tbody> <?php foreach ($arr_cases_devices as $cases) { ?> <tr> <td> <?php echo $cases['name']; ?> </td> <td> <?php echo $cases["sales_date"]; ?> </td> <td> <?php echo $cases["dev_comment"]; ?> </td> <td> <input type="hidden" name="device_id_breakage" value="<?php echo $cases["Dev_Id"]; ?>" /> <button type="submit" name="see_rma">See RMA</button> </td> </tr> <?php } ?> </tbody> </table> </form>当我点击see_rma这个时,我收到的 PHP 信息是:if (isset($_POST['see_rma'])) { $selected_dev = e($_POST['device_id_breakage']); print_r($selected_dev); // prints the "Dev_Id" of the last row, not of the row clicked}如果我尝试$cases["Dev_Id"];在表中的内部循环中打印,它会打印得很好,因此它会正确打印每行的 Dev_Id。因此,这意味着数组或数据没有任何问题。我不知道为什么会发生这种情况,但这肯定是我第一次遇到这个问题。我在许多其他表中都这样做了,但由于某些原因,它在这个表中无法正常工作。phphtml数据表表单提交
1 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
您的表单中有多个<input>
同名元素,当您提交表单时,所有这些元素都会被提交,但 PHP 只能获取其中之一。这就是为什么你最终只得到最后一个$_POST
。
看起来您应该能够通过将一些属性从隐藏输入移动到按钮(替换隐藏输入)来解决此问题。
<button type="submit" name="device_id_breakage" value="<?php echo $cases["Dev_Id"]; ?>"> See RMA </button>
只有被点击的按钮才会被提交。请注意,更改按钮的名称后,您将不再需要see_rma
任何$_POST
名称,因此,如果您有任何依赖于该名称的代码,则需要更改它以查找其他名称。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报
0/150
提交
取消