0

我有一个与items_budget相关的材料表。items_budget的表单需要将所有注册的材料作为一个组列出,并且在每个 旁边有两个字段,用于数量和价格。下面是我为渲染这件作品而编写的代码块:checkboxcheckboxinput

<strong>Materiais</strong>
{% for material in materials %}
    <div class="checkbox">
        <label>
            <input type="checkbox" class="itemsbudget_material" name="cdg_itemsbudget_type[material]" value="{{ material.id }}"> {{ material.name }} - 
        </label>
        <input type="hidden" class="itemsbudget_price_hidden" value="{{ material.price }}"/>
        <input type="text" class="itemsbudget_quantity" name="cdg_itemsbudget_type[quantity]" placeholder="Qtd" size="3"/>x - R$
        <input type="text" class="itemsbudget_price" name="cdg_itemsbudget_type[price]" value="0" size="3" readonly/>
    </div>
{% endfor %}

我面临的问题可以在图像中看到。看左上图,你看到我已经标记了“材料C”,填写了数量,提交表格后,如第二张图所示,一切都很好。

但是,如果我对另一种材质执行相同的操作,如表格的最后一张图片所示,数量字段为 NULL。

这里发生的情况是,只有材料形式中的第一个寄存器是,比方说,“看到”。当我说“第一个寄存器”时,我指的是材料形式中最低的id,字面意思是 FIRST。如果我删除了“Material C”,那么“Material D”将是第一个,并且只能看到数量字段。

在此处输入图像描述

我试图在每个name属性的末尾放置一对括号,但是通过这样做,页面被刷新并且没有任何内容被持久化,没有任何反应。

我尝试了许多不同的方法来渲染它。另外,我尝试将我的material字段创建为一个集合,但我真的认为这不是解决方案,因为我必须在字段中输入id数量价格。我需要能够使用集合表单呈现完全类似的东西。

请我需要指导。如果您需要更多代码,我很乐意更新我的问题。谢谢你。

4

1 回答 1

1

数量字段的值为空,因为字段的名称是 cdg_itemsbudget_type[quantity],值被最后一个为空的数量字段覆盖,您的字段名称必须是具有唯一索引的数组,如下所示:

<input type="text" class="itemsbudget_quantity" name="cdg_itemsbudget_type[quantity][{{ material.id }}]" placeholder="Qtd" size="3"/>x - R$

然后你有每种材料的数量数组。

于 2015-09-26T10:53:57.403 回答