我需要创建收据。
用户能够创建包含多种成分的新产品。

我使用一个表来布局输入,并且在每一行上都有一个使用以下代码生成的现有成分的选择列表:

<?php echo $this->Form->input('Receipt.0.ingredient_id', array( 'label' => false,'div' => false, 'class' => ''));


生成以下html

<select id="Receipt0IngredientId" class="" name="data[Receipt][0][ingredient_id]">
<option value="1">Ingredient B</option>
<option value="3">Ingredient B</option>
<option value="4">Ingredient B</option>
</select>


另一个字段输入所需的所选成分的数量。

<?php echo $this->Form->input('Receipt.0.amount', array( 'label' => false,'div' => false, 'class' => '')); ?>


事实是,成分的种类会因产品而异,目前,当用户单击“添加新行”按钮时,我正在使用jQuery来添加新行,但是我不知道如何更改每个字段的名称值
jQuery代码:

$("#addNewLine").click(function() {
      $('#add_ingredient tbody>tr:last').clone(true).insertAfter('#add_ingredient tbody>tr:last');
      return false;
    });


我不确定这是否是实现此目标的最佳方法。任何帮助或建议,将不胜感激,谢谢。

最佳答案

当用户单击添加新行按钮时,我正在使用jQuery添加新行,但是我不知道如何更改每个字段的名称值


克隆元素时,可以在插入元素之前(或之后)对其进行修改:

$('#add_ingredient tbody>tr:last').clone(true)
                                  .attr("name", "new name here")
                                  .insertAfter('#add_ingredient tbody>tr:last');


如果您发布了更多详细信息,例如,在更改之前显示html,然后举例说明新html的外观,那么我可以提供一些更详细的建议。

附言您是在谈论“收据”还是“食谱”?

关于php - CakePHP:根据需要为表添加新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8867252/

10-12 07:03