例如,我有像这样的HTML
<select name="something[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
</select>
在我的表单中,我可以通过javascript添加这些选择多个时间动态 所以它变成了
<!-- Control 1 -->
<select name="something[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
</select>
<!-- Control 2 -->
<select name="something[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
</select>
然后在Control 1上我选择&#34; 1&#34; ,在Control 2上我选择&#34; 1&amp; 2&#34; 。 我从PHP帖子得到的是这样的
array("1","2")
我想得到的是:
array(
array("1"),
array("1","2")
)
请帮助!!!
答案 0 :(得分:0)
您对两个输入使用相同的名称something[]
。因此,在提交数据时捕获数据会很困惑(特别是当两者中的值相同时)。因此,我认为最好为两个输入使用两个不同的名称something_1[]
和something_2[]
。 (代码不符合标准。我只是想解决这个问题)
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="GET">
<!-- Control 1 -->
<select name="something_1[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
</select>
<!-- Control 2 -->
<select name="something_2[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
</select>
<input type="Submit">
</form>
<?php
print_r($_GET);
?>
<强>输出强>
Array ([something_1] => Array([0] => 1) [something_2] => Array([0] => 1 [1] => 2))
另一个apporach
正如@alamnaryab在评论中提到的,你也可以使用这种方法。它将两个数组作为单独的数组提供。
print_r($_GET['something[0][]']);
print_r($_GET['something[1][]']);