我有一个简单明了的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数组中。
这是一个已知问题吗?我以前没见过......
感谢您的任何指示, ħ
答案 0 :(得分:1)
使用jQuery.trim(data)
,但这不太确定,因为可能会影响
您的数据内容。或者看this one可能有帮助
答案 1 :(得分:0)
您的桌子是否缺少html ID? jQuery选择器$('#orderingTable')正在寻找id =“orderingTable”
的东西答案 2 :(得分:0)
在一些彻底的(和男孩,我的意思是彻底),事实证明,以下简单(但明显)的HTML错误可能导致此问题:
在创建经过适当验证的HTML时,提交的表单会将所有值正确传递到_POST数组中。在尝试使用编码方法时,确保开发人员注意基础知识的对象课程;)
答案 3 :(得分:0)
我发现使用.html()
插入内容而不是.append()
或.prepend()
会导致插入的表单字段按预期工作。
答案 4 :(得分:0)
我只是花了很长时间来解决这样的问题。
我将输入字段写入表单并且输入字段未显示在$ _POST提交数组中,完全令人烦恼!!!! Aaaaanyway,我通过查看我的所有HTML来修复它,结果证明我的表格是打开的&#39;在页面上的主要部分之一而不在外面。
因此:
<div>
<form>
<input type="text" name="input_field">
</div>
</form>
现在修复为:
<form>
<div>
<input type="text" name="input_field">
</div>
</form>
傻,我知道,但是以一种巨大的形式,发现它很棘手!所以简而言之就是对你的html进行整理并且它会起作用,我希望能在某个地方帮助某人: - )
中号