亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在數據表內提交此按鈕時未提交正確的行 ID

在數據表內提交此按鈕時未提交正確的行 ID

PHP
瀟湘沐 2023-08-06 15:36:55
我有一個動態表,它設置在 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名稱,因此,如果您有任何依賴于該名稱的代碼,則需要更改它以查找其他名稱。


查看完整回答
反對 回復 2023-08-06
  • 1 回答
  • 0 關注
  • 111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號