返回多个(multiple select)的值


return the values of multiple ( multiple select )

我有一个动态表单,它可以复制自己来进行大容量插入。

示例:我的表单有多个选择
<select name="type[]" multiple>
 <option>1</option>
 <option>2</option>
 <option>3</option>
</select>

当我像这样复制它

<select name="type[]" multiple>
 <option>1</option>
 <option>2</option>
 <option>3</option>
</select>
<select name="type[]" multiple>
 <option>1</option>
 <option>2</option>
 <option>3</option>
</select>

然后选择例如两个选项中的所有选项它返回类似

的东西
Array
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [4] => 1 
    [5] => 2 
    [6] => 3 
)

用这个。我不知道第一次选择中选择了什么,第二次选择中选择了什么我该怎么做呢

---- EDIT -----

当点击输入 时,通过jquery复制表单。
 jQuery("body").on("click", '.duplicate', function(){
            $(".newform"). append(jQuery(".form").html());
            return false;
        });

,其中按钮复制类(.duplicate)div中的form有class(。form)并有一个空div类(.newform)

当我点击Button (.duplicate)时,它将(.form)复制到(.newform)

----- EDIT ------

我修改了javascript以适应接受的答案

jQuery("body").on("click", '.duplicate', function(){
 $key = $(".newform>div").length;
 $(".newform"). append(jQuery(".form").html().replace(new RegExp('''['']''['']', 'g'),'['+$key+'][]'));
}); 

我只是计算了(.newform)中的div以使其成为一个键然后将每个[][]替换为[]['key']

如果您需要它们始终具有相同的名称,您可以这样做:

<?php
    if (isset($_POST['type']))
        var_dump($_POST['type']);
?>
<form method="POST">
    <select name="type[1][]" multiple>
     <option>1</option>
     <option>2</option>
     <option>3</option>
    </select>
    <select name="type[2][]" multiple>
     <option>1</option>
     <option>2</option>
     <option>3</option>
    </select>
    <input type="submit" value="Send"/>
</form>

它们将在服务器端变成一个多维数组。

所有选择的结果:

array (size=2)
  1 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string '2' (length=1)
      2 => string '3' (length=1)
  2 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string '2' (length=1)
      2 => string '3' (length=1)