如何获得选择框数组的多个选项
问题描述:
我有一个表单元素在循环中,其中之一是选择框与多个选择选项。 这是代码。如何获得选择框数组的多个选项
<?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
)
)
)
有没有什么办法让数组这样? 非常感谢您的帮助。
答
您需要在输入使用计数器变量$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>
你能分享其中的第一阵列输出代码关闭标签I-E
<select name="problems[]"
接近它的错误? (你现在拥有的那个) –