Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用动态表单jquery创建多维数组_Javascript_Jquery_Multidimensional Array - Fatal编程技术网

Javascript 使用动态表单jquery创建多维数组

Javascript 使用动态表单jquery创建多维数组,javascript,jquery,multidimensional-array,Javascript,Jquery,Multidimensional Array,我有下面的表单,如果用户单击链接添加更多项目,我会动态添加更多与这些完全相同的下拉列表 <div class="dynamic-sale"> <select name="sizes[]" id="sizes" class="entry-dropdown"> <option value="3XL">3XL</option> <option value="2XL">2XL</option&g

我有下面的表单,如果用户单击链接添加更多项目,我会动态添加更多与这些完全相同的下拉列表

<div class="dynamic-sale">
      <select name="sizes[]" id="sizes" class="entry-dropdown">
        <option value="3XL">3XL</option>
        <option value="2XL">2XL</option>
        <option value="XL">XL</option>
        <option value="L">L</option>
        <option value="M">M</option>
        <option value="YL">YL</option>
        <option value="YM">YM</option>
      </select> 
   <select name="number[]" id="amount" class="entry-dropdown">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
   </select>
   <select name="price[]" id="price" class="entry-dropdown">
        <option value="15">$15</option>
        <option value="12.5">$12.5</option>
        <option value="10">$10</option>
        <option value="0">Free</option>
   </select>
 </div>
但当我测试它时,我得到的只是一个数组:[XL,3,15,3XL,1,15]

以可用格式获取数据的最佳方式是什么

我希望这是有道理的!
谢谢

您必须遍历每个动态销售元素。然后,循环遍历子数组,并将值添加到子数组中

var result = [];                               // <-- Main array
$(".dynamic-sale").each(function(){
    var individual_result = [];                // <-- "sub"-array
    $(this).find("select").each(function(){
        individual_result.push($(this).val());
    })
    result.push(individual_result);            // <-- Add "sub" array to results
});

您必须遍历每个动态销售元素。然后,循环遍历子数组,并将值添加到子数组中

var result = [];                               // <-- Main array
$(".dynamic-sale").each(function(){
    var individual_result = [];                // <-- "sub"-array
    $(this).find("select").each(function(){
        individual_result.push($(this).val());
    })
    result.push(individual_result);            // <-- Add "sub" array to results
});

这有点不同,但像这样的想法可能是:

var data = [];

$("#order-submit").click(function () {
    $(".dynamic-sale").each(function () {
        var $saleDiv = $(this);
        data.push({
            size: $saleDiv.children(".size-dropdown").val(),
            amount: window.parseInt($saleDiv.children(".amount-dropdown").val(), 10),
            price: window.parseFloat($saleDiv.children(".price-dropdown").val())
        });    
    });
});
然后,您将得到一个对象数组,每个对象表示表中的一行,类似于:

[
    {size: "3XL", amount: 1, price: 0},
    {size: "M", amount: 7, price: 12.5}
    ...
]

这有点不同,但像这样的想法可能是:

var data = [];

$("#order-submit").click(function () {
    $(".dynamic-sale").each(function () {
        var $saleDiv = $(this);
        data.push({
            size: $saleDiv.children(".size-dropdown").val(),
            amount: window.parseInt($saleDiv.children(".amount-dropdown").val(), 10),
            price: window.parseFloat($saleDiv.children(".price-dropdown").val())
        });    
    });
});
然后,您将得到一个对象数组,每个对象表示表中的一行,类似于:

[
    {size: "3XL", amount: 1, price: 0},
    {size: "M", amount: 7, price: 12.5}
    ...
]

这就是我要找的。现在这很有道理。谢谢这就是我要找的。现在这很有道理。谢谢