2014-09-05 68 views
1

我想用多个(未知数)的行构建一个表单,并最终将数据插入到数据库中。但是,我的一个输入字段是多选,这会混淆数组。多行选择多维数组

电流(简化的)的HTML代码:

<form name="testform" action="testarray.php" method="post"> 
    <table> 
    <tr> 
    <td><label>formdata</label></td> 
    <td><select name="formdata[][]" multiple="multiple"> 
     <option> </option> 
     <option value="item1">Item 1</option> 
     <option value="item2">Item 2</option> 
     <option value="item3">Item 3</option> 
    </select></td> 
    </tr> 
    <tr> 
    <td><label>formdata</label></td> 
    <td><select name="formdata[][]" multiple="multiple"> 
     <option> </option> 
     <option value="item1">Item 1</option> 
     <option value="item2">Item 2</option> 
     <option value="item3">Item 3</option> 
    </select></td> 
    </tr> 
    </table> 
    <button type="submit" value="submit">Submit</button> 
</form> 

,如果我选择ITEM2在第一输入,并选择ITEM2 &项目3上的第二输入端,然后简单地打印动作页print_r($_POST['formdata']);比在阵列数组是这样的:

Array ([0] => Array ([0] => item2) [1] => Array ([0] => item2) [2] => Array ([0] => item3)) 

我希望它看起来像这样:

Array ([0] => Array ([0] => item2) [1] => Array ([0] => item2 [1] => item3)) 

我错过了什么?

回答

0

这是工作

<?php 
$i=0; 
?> 

<form name="testform" action="testarray.php" method="get"> 
    <table> 
    <tr> 
    <td><label>formdata</label></td> 
    <td><select name="formdata[<?php echo $i++ ?>][]" multiple="multiple"> 
     <option> </option> 
     <option value="item1">Item 1</option> 
     <option value="item2">Item 2</option> 
     <option value="item3">Item 3</option> 
    </select></td> 
    </tr> 
    <tr> 
    <td><label>formdata</label></td> 
    <td><select name="formdata[<?php echo $i++ ?>][]" multiple="multiple"> 
     <option> </option> 
     <option value="item1">Item 1</option> 
     <option value="item2">Item 2</option> 
     <option value="item3">Item 3</option> 
    </select></td> 
    </tr> 
    </table> 
    <button type="submit" value="submit">Submit</button> 
</form> 
+0

谢谢你,但没有,缺少的东西,因为print_r的输出仍然发布数据环成一个阵列 - '阵列([] =>阵列([0] =>物品1 [ 1] => item2 [2] => item3))'不管我如何配置你的解决方案(在第一次选择时只使用'echo $ i'或甚至0,所有'i ++'都会一起放入一个数组中。 – harvey 2014-09-07 16:03:31