我有一个与 items_budget 相关的材料表。 items_budget 的表单需要将所有已注册的材料列为checkbox
组,并在每个checkbox
旁边列出两个input
字段,数量和价格。下面是我为渲染这篇文章而编写的代码块:
<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 %}
我可以在图像中看到我面临的问题。查看左上角的图片,您会看到我标记了&#34;材料C&#34;,填写了数量,并在提交表单后,如第二张图片所示,一切都很好。
但是如果我对另一个材料做同样的事情,就像我在桌子的最后一张图片中看到的那样,数量字段是NULL。
这里发生的事情是,只有材料表单中的第一个注册表是,&#34; s,&#34; see&#34;。当我说&#34;首先注册&#34;我的意思是材料形式中最低的 id ,字面意思是FIRST。如果我删除了&#34;材料C&#34;,那么&#34;材料D&#34;将是第一个,数量字段只能用于它。
我试图在每个name
属性的末尾添加一对括号,但是通过这样做,页面会刷新并且没有任何内容,没有任何反应。
我尝试了许多不同的方式来渲染它。此外,我尝试将我的material
字段创建为集合,但我认为这不是解决方案,因为我必须获取 id ,数量和在字段中输入价格。我需要能够使用集合表单呈现与此完全相同的内容。
我需要指导。如果您需要更多代码,我将很乐意更新我的问题。谢谢。
答案 0 :(得分:1)
数量字段的值为空,因为字段的名称是cdg_itemsbudget_type [quantity],该值覆盖了最后一个数量字段为空,您的字段名称必须是具有唯一索引的数组,如下所示:
<input type="text" class="itemsbudget_quantity" name="cdg_itemsbudget_type[quantity][{{ material.id }}]" placeholder="Qtd" size="3"/>x - R$
然后你就有了每种材料的数量。