无法使用jQuery的append()添加同名<input>希望一起上传数组数据

根据需求,希望实现添加点击添加商品时出现一行新的商品信息输入行(此处已实现),并将所有信息以数组形式回传至后台。

clipboard.png

商品名称的input均已Goods_name[]命名,代码如下:

<script type="text/javascript">

        $(document).ready(function() {
            var element = '<td><input type="text" id="cityChoice" name="Goods_name[]"></td>';
            var block = $("#tbody");
            $("#add_row").click(function() {
                block.append(element);
            });
        });

    </script>
<tr>
    <td class="td_bor"><input type="text" id="cityChoice" name="Goods_name[]"></td>
</tr>

但php后台接收到的数据也确实是一个数组,但仅可以接收到第一行的数据,通过jquery添加的新的行的内容并不能接收到。
下图为输入的两个商品名称,<input>的name均为Goods_name[],

clipboard.png
下图则为后台接收的数据,Goods_name确是数组,但仅有第一个数据。

clipboard.png

跪求答案啊~

阅读 5k
4 个回答

谢谢大家的关系和帮助,最后发现无法获得全部数据的原因是代码中<div></div>结构出错,由于多了</div>而导致的。具体的理由我还需要找一下,应该和DOM有关。
在完成对HTML本身错误的修正后,数据可以被很好的接收了。

Goods_name[]写在nsme里面就变成了字符串。而不是数组了

要用js的$.each()循环获取数据放在数组中传到后台

var element = '<td><input type="text" id="cityChoice" name="Goods_name[]"></td>';

不应该使用`
id

id应该具有唯一性,使用class啊
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题