我有一個動態表,它設置在 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 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消