如何提交放置在数据表中的表格?

时间:2019-01-29 12:39:59

标签: javascript php jquery forms datatable

我正在尝试提交以数据表形式显示的数据。整个表也包括放置在<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'])值中的输入字段,为什么会这样呢? 注意:仅当我使用数据表时才出现问题,但是当我尝试不使用数据表时便没有出现此问题,对不起我的英语不好!真正的问题很复杂,但这只是我所面对问题的一个小演示。

1 个答案:

答案 0 :(得分:0)

问题是因为数据表通常两次创建标头的列(输入标签等)。

正文中第一个标题(隐藏)中第二个标题,名称相同。因此,当我们在“输入”(textfeild)中添加一些值时,通常会看到第一个值,而第二个“输入”(textfeild)值将其替换(因为它们都具有相同的“名称”属性)。  您可以简单地通过使用“ []”这个“名称”的开头来解决此问题,例如

 <input type='text' name='val1[]' />

这会将val1转换为数组,因此您只需使用forloop即可忽略第二个值并检索$_POST['val1']第一个值。但是,保持数据表的顺序为假。

注意:也许有更简单的方法来解决此问题。如果知道的话,发布吧!