簡體   English   中英

創建動態表單元素時沒有POST數據

[英]No POST data when creating dynamic form elements

首先,我不是開發人員所以這種東西有點超出我的舒適區。

我想弄清楚為什么我在提交表單時沒有收到任何帖子數據。 我通過按鈕使用一些小的javascript來創建動態表單元素並提交它們。

我有以下html代碼段:

       <form id="admin_approvals" method="post" action="process_request.php">
              <table>
              <tr><th>Task</th><th>Status</th><th colspan="3">Action</th></tr>
             <tr>
                <td>New phone purchase</td>
                <td>WAITING APPROVAL</td>
                <td><button type="button" id="approve" onclick="actionRequest('APPROVE',94)">APPROVE</button></td>
                <td><button type="button" id="reject" onClick="actionRequest('REJECT',94)">REJECT</button></td>
                <td><button type="button" id="delete" onClick="actionRequest('DELETE',94)">DELETE</button></td>
             </tr> 
            </table>
        </form>

javascript看起來像這樣:

function actionRequest(keyword,task_id) {

    var input = document.createElement("input");
    input.setAttribute("type", "hidden");
    input.setAttribute("action",keyword);
    input.setAttribute("task",task_id);

    document.getElementById("admin_approvals").appendChild(input);
    document.getElementById("admin_approvals").submit();
}

而php只是為了調試目的而這樣做:

print_r($_POST);

單擊按鈕后我看到的只是一個空白數組:

Array( )

我已經嘗試在Javascript中使用getAttribute進行調試,並且正在設置值。 只是看起來沒有數據正在POST。

問題

問題不在於動態附加或創建輸入。 真正的問題是你的輸入沒有name屬性。

要修復它,只需在JavaScript中設置name屬性即可。

input.setAttribute("name", "test");

資源

GET和POST都創建一個數組(例如array(key => value,key2 => value2,key3 => value3,...))。 此數組包含鍵/值對,其中鍵是表單控件的名稱,值是來自用戶的輸入數據。

http://www.w3schools.com/php/php_forms.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM