我正在尝试提交以数据表形式显示的数据。整个表也包括放置在<thead>
中的数据。让我以示例更简单的方式询问。
<form method="post">
<table class="table table-bordered" id="example">
<thead>
<tr>
<td>
<input type="text" name="val1" />
</td>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name="checkBody" /></td>
</tr>
</tbody>
</table>
<input type="submit" class="btn btn-primary" value="save" name="upload" />
</form>
<script type="text/javascript">
$(document).ready(function () {
$("#example").DataTable({
"info": false,
"ordering": false,
"searching": false,
"retrieve": true,
"scrollY": "100%",
"scrollX": true,
"scrollCollapse": true,
"paging": false
});
});
</script>
这是表格,数据表正常工作,但是主要问题是当我看到$_POST['val1']
值时单击“提交”按钮,它为空,但可以显示tbody($_POST['checkBody']
)值中的输入字段,为什么会这样呢?
注意:仅当我使用数据表时才出现问题,但是当我尝试不使用数据表时便没有出现此问题,对不起我的英语不好!真正的问题很复杂,但这只是我所面对问题的一个小演示。
答案 0 :(得分:0)
问题是因为数据表通常两次创建标头的列(输入标签等)。
正文中第一个标题(隐藏)中第二个标题,名称相同。因此,当我们在“输入”(textfeild)中添加一些值时,通常会看到第一个值,而第二个“输入”(textfeild)值将其替换(因为它们都具有相同的“名称”属性)。 您可以简单地通过使用“ []”这个“名称”的开头来解决此问题,例如
<input type='text' name='val1[]' />
这会将val1转换为数组,因此您只需使用forloop即可忽略第二个值并检索$_POST['val1']
第一个值。但是,保持数据表的顺序为假。
注意:也许有更简单的方法来解决此问题。如果知道的话,发布吧!