[英]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.