【问题标题】:Cloned a HTML TR with Jquery. Need each clone to submit seperate SQL INSERT使用 Jquery 克隆 HTML TR。需要每个克隆提交单独的 SQL INSERT
【发布时间】:2018-04-16 10:51:01
【问题描述】:

如标题所述。我已经用下面的代码克隆了一个 HTML TR:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
        $(document).ready(function() {
        $("#add1").click(function() {
          $('#oldDevTable tbody>tr:last').clone(true).insertAfter('#oldDevTable tbody>tr:last');
             $('#oldDevTable tbody>tr:last #stock').val('');
             $('#oldDevTable tbody>tr:last #hand').val('');
             $('#oldDevTable tbody>tr:last #returned').val('');
             $('#oldDevTable tbody>tr:last #received').val('');
             $('#oldDevTable tbody>tr:last #stockhand').val('');
             $('#oldDevTable tbody>tr:last #request').val('');
             $("#oldDevTable tbody>tr:last").each(function() {this.reset();});

             return false;
        });
    });

我面临的问题是,当我使用克隆的 TR 中的信息(这是基本文本输入)并单击提交按钮时,它只发送最后一个 TR 的 SQL 数据。我需要它为该表单的每个 TR 发送单独的 SQL INSERT 命令。我对 JQuery 不了解,我可能需要为每个克隆创建一个新 ID 或其他东西,如果 id = example,则发送 SQL。但是,我至今无法做到这一点。

非常感谢任何帮助?

(SQL 显然是在 PHP 中调用的,因为这是一个 PHP 网站,它也在内部运行带有 HTML 元素的脚本)

编辑:

DOM 选择源:

<a class="button" id="add1">+</a>
              <label>Old Devices/Removed from Site</label>
  <form action="?action" method="post">
                <table id="oldDevTable" style="width:100px; align:center" class="center">
             <tbody>
            <tr>
                <td>
             <select name="Devices_Removed_From_Site">
          <option value="example">Example</option>
</select>
                </td>
                <td>
<input id="hand" name="prevWeek" placeholder="On hand prev week" type="text">
</td>
<td>
<input id="stock" name="usedStock" placeholder="Stock used" type="text">
</td>
<td>
<input id="returned" name="returnedStock" placeholder="Stock returned" type="text">
</td>
<td>
<input id="received" name="receivedStock" placeholder="Stock received" type="text">
</td>
            </tr>

【问题讨论】:

  • 所以所有生成的输入都有相同的ID,对吧?是的,这应该改变。但是根据您的描述,我希望第一个 tr 中的数据将被提交而不是最后一个。所以也许还有其他事情发生。你能提供一个生成的 HTML 的样例吗? (例如,在 Firefox 中,选择表格并执行“查看选择源”。)
  • 我已经编辑并添加了我认为您正在寻找的内容?

标签: php jquery html sql


【解决方案1】:

如果有多个同名输入,那么最后一个元素值将在服务器端(例如:php),重复的 id 也需要修复,因为它会在通过 javascript 访问时导致未定义的行为。 您需要动态设置新插入的 tr 元素的名称和 ID,例如
$('#oldDevTable tbody>tr:last #hand').attr('name','hand[1]');
$('#oldDevTable tbody>tr:last #hand').attr('id','hand-1');
您可以考虑获取 tr 计数并将其递增 1 并附加到 id、name。

【讨论】:

  • 这很棒。所以这会将 id 更改为 hand-1 或创建的每个新 tr 。现在我需要让它像你所说的那样增加 1。将对此进行一些研究,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 2019-06-13
相关资源
最近更新 更多