带有PHP和嵌套数组输入的动态表单

时间:2011-03-15 02:24:31

标签: php jquery forms clone

我有一个需要订单输入流程的项目。订单将像从下拉列表中选择项目一样简单。每个订单可能包含多个购买行项目。使用JQuery来克隆这个字段非常简单,因为我理解并且我可以做到这一点。在我挂断的地方,会有一系列与为订单选择的项目相关的选项,需要与特定的订单项相关联。典型的订单可能类似于:

  • 产品项目:ASUS BASE DESKTOP
    • 选项
    • 4GB RAM选项
    • Windows 7 x64 Professional
  • 产品项目:HP BASE LAPTOP
    • 选项
    • 2GB RAM选项
    • Windows Vista x32

我的HTML标记看起来像:

<tr class="firstProduct productOrder">
    <td>Product Name</td>
    <td>
        <select id="ProductNameSelect" name="productOrdered[]">
            <option selected="selected" value="0">Select a Product...</option>
            <option value="1">ASUS BASE DESKTOP</option>
            <option value="2">HP BASE LAPTOP</option>
        </select>
    </td>
</tr>
<tr class="firstProduct productOrder">
    <td>Product Options</td>
    <td>
        <label>4GB RAM Option<input type="checkbox" name="productOption[0][]" value="1" /></label>
        <label>Windows 7 x64 Professional<input type="checkbox" name="productOption[0][]" value="2" /></label>
        <label>Windows Vista x32<input type="checkbox" name="productOption[0][]" value="3" /></label>
    </td>
</tr>

productOption 字段的名称必须命名为嵌套数组,否则为productOrdered [1]选择的选项可能无法正确分配。我需要能够从[0] []到[1] []到[2] []迭代 productOption 的名称,依此类推每个添加的订单,以便可以正确处理PHP的POST变量。

是否有最好的方法&#34;或者至少更常见的方法来实现这个目标,而不是在JQuery中搜索前一个子节点并解析名称以确定在productOption名称中使用的下一个ID?

1 个答案:

答案 0 :(得分:3)

是的,只需在javascript代码中声明一个全局变量,并在每次添加字段集时递增它。

<script>
var index=0;
function addFieldset()
{
   ...
   index++;
}
</script>