返回多个值(多个选择)

时间:2016-10-28 17:19:24

标签: javascript php jquery

我有一个动态表单,可以自行复制以进行批量插入。

示例:我的表单有多个选择

<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 
)

有了这个。我不知道在第一个选择中选择了什么,在第二个选择中选择了什么 我怎么能这样做

----编辑-----

我点击输入

时通过jqyery公布表格
 jQuery("body").on("click", '.duplicate', function(){

            $(".newform"). append(jQuery(".form").html());
            return false;

        });

其中复制的按钮具有类(.duplicate) div中的表单有类(.form) 并且空div有类(.newform)

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

-----编辑------

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

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

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

1 个答案:

答案 0 :(得分:1)

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

<?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)