如何获得选择框数组的多个选项

如何获得选择框数组的多个选项

问题描述:

我有一个表单元素在循环中,其中之一是选择框与多个选择选项。 这是代码。如何获得选择框数组的多个选项

<?php for($i = 1; $i <= 2; $i++){ ?> 
<input type="text" name="product[]" /> 
<select name="problems[]" 
    <option value="problem1">Problem 1</option> 
    <option value="problem2">Problem 2</option> 
    <option value="problem3">Problem 3</option> 
</select> 
<?php } ?> 

我进入产品“TV”,选择产品2选择“电视”,即问题1和problem2和其他产品冰箱全部3个选项。 当我提交表单打印后的数据,我在数组中获取数据

Array 
(
    [product] => Array 
     (
      [0] => TV 
      [1] => Fridge 
     ) 

    [problems] => Array 
     (
      [0] => problem1 
      [1] => problem2 
      [2] => problem1 
      [3] => problem1 
      [4] => problem3 
     ) 
) 

在这里,我不能检查哪些问题是其产品。 我想是这样的

Array 
(
    [product] => Array 
     (
      [0] => TV 
      [1] => Fridge 
     ) 

    [problems] => Array 
     (
      [0] => Array 
       (
        [0] => problem1 
        [1] => problem2 
       ) 
      [1] => Array 
       (
        [0] => problem1 
        [1] => problem2 
        [2] => problem3 
       ) 
     ) 
) 

有没有什么办法让数组这样? 非常感谢您的帮助。

+0

你能分享其中的第一阵列输出代码关闭标签I-E <select name="problems[]"接近它的错误? (你现在拥有的那个) –

您需要在输入使用计数器变量$i选择元素,再加上你必须做出几个更多的变化。重构代码以下列方式,

<?php for($i = 0; $i <= 1; $i++){ ?> 
    <input type="text" name="product[<?php echo $i; ?>]" /> 
    <select name="problems[<?php echo $i; ?>][]" multiple> 
     <option value="problem1">Problem 1</option> 
     <option value="problem2">Problem 2</option> 
     <option value="problem3">Problem 3</option> 
    </select> 
<?php } ?> 

旁注:如果万一你想看到完整的阵列结构,做var_dump($_POST);

那样的事情呢?

<?php for($i = 1; $i <= 2; $i++){ ?> 
<input type="text" name="product_<?php echo $i; ?>[]" /> 
<select name="problems_<?php echo $i; ?>[]" 
    <option value="problem1">Problem 1</option> 
    <option value="problem2">Problem 2</option> 
    <option value="problem3">Problem 3</option> 
</select> 
<?php } ?> 

仅举你的问题领域是这样<select name="problems[<?php echo $i;?>][]">

将您的代码更正为

<?php for($i = 1; $i <= 2; $i++){ ?> 
<input type="text" name="product[<?php echo $i; ?>]" /> 
<select name="problems[<?php echo $i; ?>][]" multiple> 
    <option value="problem1">Problem 1</option> 
    <option value="problem2">Problem 2</option> 
    <option value="problem3">Problem 3</option> 
</select> 
<?php } ?> 

你也有与关闭标签标志和使用multiple关键词中<select name="problems[<?php echo $i; ?>][]" multiple>