我有一个动态表单,它可以复制自己来进行大容量插入。
示例:我的表单有多个选择<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)