【发布时间】:2011-02-23 18:22:42
【问题描述】:
我有一个简单的 HTML 表单,它允许人们订购一些小册子。表单首先加载的内容看起来有点像这样:
<script type="text/javascript">
var tableRowN = 1;
</script>
<form id="Order" name="Order" method="post" action="includes/orderCheck.php">
<input id="name" type="text" name="name" width="100" />
<table id="orderingTable">
<tr class="lastRow">
<td><div id="itemGroupdiv1">
<input type="text" class="disabled" name="itemGroup1" id="itemGroup1" />
</div></td>
<td><div id="itemCodediv1">
<input type="text" name="itemCode1" id="itemCode1" class="disabled" />
</div></td>
<td><div id="itemCodeVersiondiv1">
<input type="text" class="disabledSmall" id="itemcodeversion1" name="itemcodeversion1" />
</div></td>
</tr>
</table>
<input type="submit" name="submit" id="submit"/>
</form>
然后,当用户想要在表格中添加新行时,他可以单击一个按钮,该按钮会触发以下 javascript 函数以通过 AJAX 获取新表格代码并将其插入。
function createItemLine() {
tableRowN++;
$('tr.lastRow').attr('class', '');
$('#orderingTable').append('<tr class="lastRow"></tr>');
$.ajax({
url: "/orderingTable.php?rNumber=" + tableRowN,
cache: false,
success: function(html){
$("tr.lastRow").append(html);
alert('loaded');
}
});
}
然后 AJAX 函数运行到 PHP 脚本,该脚本创建下一行,将 ID 和名称等滚动到数字 +1。
<td><div id="itemGroupdiv2">
<input type="text" class="disabled" name="itemGroup2" id="itemGroup2" />
</div></td>
<td><div id="itemCodediv2">
<input type="text" name="itemCode2" id="itemCode2" class="disabled" />
</div></td>
<td><div id="itemCodeVersiondiv2">
<input type="text" class="disabledSmall" id="itemcodeversion2" name="itemcodeversion2" />
</div></td>
到目前为止,没有什么令人惊讶的?一切都应该很简单......
问题是当我添加新行(在 Firefox 和 Chrome 中)时,表单提交过程会完全忽略新行,并且它们永远不会传递到 $_POST 数组中。
这是一个已知问题吗?我以前没有遇到过这种情况...
感谢您的任何指点, H
【问题讨论】: