使用 append() 将行追加到表单,但是当它提交时它不包括来自追加行的数据[重复]

Posted

技术标签:

【中文标题】使用 append() 将行追加到表单,但是当它提交时它不包括来自追加行的数据[重复]【英文标题】:Append row to form with append() but when it submits it doesn't include the data from appended rows [duplicate] 【发布时间】:2022-01-13 12:08:05 【问题描述】:

尝试制作一个可以在需要额外行时附加行的表单,并使用 php 和 jquery 将表单提交到数据库。我可以附加这些行,但是当提交表单时,它们会从响应中省略。有人可以澄清什么是错的吗?

表格代码

<table class="material-form">
    <thead>
        <tr style="display: flex; flex-direction: row; justify-content: space-around;">
            <th>Sku</th>
            <th>Description</th>
            <th>Order</th>
        </tr>
    </thead>
    <?php
                $attributes = array('name' => 'count_form');
                echo form_open_multipart('request/C_request/new_material_request?wh=' .  strtolower($warehouse['warehouse_name']) , $attributes);
                ?>
    <div >
    <tbody style="display: flex; flex-direction: column;">
        <tr id="rows">
            <td><input type="textarea" id="sku" name="sku[]" onblur="sumFunction()"  style="font-size: 30px; background-color: #DCDCDC; height: 80%; margin-right: 15px" class="col-md-4" ></td>
            <td><input type="textarea" id="sku" name="sku[]" onblur="sumFunction()"  style="font-size: 30px; background-color: #DCDCDC; height: 80%; margin-right: 15px" class="col-md-4" ></td>
        </tr>
    </tbody>
    </div>

</table>
<div id="add-row" >add row<p id="counter"></p></div>
<button type="button" class="btn btn-primary btn-lg"  id="accept-count" style="">submit</button>

提交代码

jQuery(document).ready(function ($) 

    $('#add-row').click(function() 
        $('#rows').prepend('<td><input type="textarea" id="sku" name="sku[]" onblur="sumFunction()"  style="font-size: 30px; background-color: #DCDCDC; height: 80%; margin-right: 15px" class="col-md-4" ></td>'
        )
      )



    $('#accept-count').click(function () 
        document.count_form.submit();

    );

);

【问题讨论】:

表单标签不是表格元素的子元素。 div 元素不是表的子元素。它不起作用,因为您的 html 无效 表格用于表格数据,而不是表格。阅读语义标记。 【参考方案1】:

您的 HTML 无效。浏览器试图找出你在做什么并呈现它。您不能将表单和 div 元素作为表的子元素。你的 html 应该是这样的

<form>
    <table>
       <thead>
       </thead>
       <tbody>
       </tbody>
    </table>
</form>

现在你正在使用它的 css 并使用 flex,我不确定你为什么还要使用表格。

【讨论】:

以上是关于使用 append() 将行追加到表单,但是当它提交时它不包括来自追加行的数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将行追加到另一个数据帧

将行附加到 pandas DataFrame 而不制作新副本

使用jquery将行添加到表中[重复]

使用 R 将行追加到 .csv 文件

如何使用 jQuery 将行追加到表中?

使用 openxml 将行追加到 azure blob 存储中的 excel