【发布时间】:2018-12-12 22:53:46
【问题描述】:
我有一种如下图所示的复选框:
<form method="POST" action="display.php">
<input type="checkbox" value="1" name="options[]">
<span class="checkboxText"> Fruits</span>
<input type="checkbox" value="2" name="options[]">
<span class="checkboxText">Vegetables </span><br><br>
<button class="button" type="submit" value="display">DISPLAY</button>
</form>
我使用$_POST['options'] 获得options[] 并将数据数组保存在一个变量中。如果选中了水果复选框,我想显示水果数组,如果选中蔬菜复选框,我想显示蔬菜数组,如果两者都被选中,我想显示它们,并显示一条消息说“水果和蔬菜是健康的”。这是我到目前为止的 php 代码,但它似乎并没有像我希望的那样工作。
<?php
$values = $_POST['options'];
$n = count($values);
for($i=0; $i < $n; $i++ )
{
if($values[$i] === "1" && $values[$i] == "2")
{
//iteration to display both tables
echo 'Fruits and Vegetables are healthy';
}
else if($values[$i] === "1")
{
//display fruits
}
else if( $values[$i] == "2")
{
//display vegetables
}
}
?>
我的 php 代码的问题是它根本没有进入第一个。它只显示来自其他两个 if 的两个表(因为也不显示回显)。有什么办法可以解决这个问题吗?
【问题讨论】:
-
$values[$i]从数组中提取单个值,它不能同时是“1”和“2”。 -
但是当我同时检查它们时,它需要两个值。当我使用 for 循环时,这不应该给它两个值吗?
-
另外,如果可能的话,你能给我一个解决方案吗?
-
你只有一个值 per 遍历循环。添加
echo "index:" . $i . " value:" + $values[$i]以可视化此。
标签: php html forms web-services post