我创建了一个简单的表单,它允许用户根据自己的选择添加和删除行。在用户决定添加多少行并相应地填充表单后,提交后,我想发布数据,以便我可以使用 .php 脚本将数据上传到服务器上。
我已经测试了添加和删除行的功能。当我单击提交按钮时,它会将我重定向到 upload.php,但在该页面上,我看到一个错误:“未定义索引:奖励”,这让我认为数据没有正确发送。
我下面的实现有问题吗?
HTML
<button onclick="addRow();">Add Row</button>
<form method="post" action="upload.php">
<table border="1" id="optionsTable">
<tr>
<td>Header1</td>
<td>Header2</td>
<td>Delete</td>
</tr>
<tr id="templateRow" style="display:none">
<td><input type="text" id="reward" /></td>
<td><input type="text" id="duration" /></td>
<td><input type="button" id="deleteOption" value="Delete" onclick="delRow(this)"/></td>
</tr>
</table>
<input type="submit" value="Submit" />
</form>
</body>
</html>
<script>
var maxID = 0;
function getTemplateRow() {
var x = document.getElementById("templateRow").cloneNode(true);
x.id = "";
x.style.display = "";
x.innerHTML = x.innerHTML.replace(/{id}/, ++maxID);
return x;
}
function addRow() {
var t = document.getElementById("optionsTable");
var rows = t.getElementsByTagName("tr");
var r = rows[rows.length - 1];
r.parentNode.insertBefore(getTemplateRow(), r);
}
function delRow(row) {
var i=row.parentNode.parentNode.rowIndex;
document.getElementById('optionsTable').deleteRow(i);
}
</script>
我现在只使用upload.php进行调试,所以那里只有一个命令:echo($_POST['reward']);
任何帮助将不胜感激。