使用多重选择发布两个选择

时间:2015-08-22 04:43:05

标签: php html

例如,我有像这样的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")
)

请帮助!!!

1 个答案:

答案 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][]']);