[英]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,...))。 此數組包含鍵/值對,其中鍵是表單控件的名稱,值是來自用戶的輸入數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.