这是带有复选框的表单。我需要打印出文本,但不打印复选框的值。
<p>Select the cinema where you saw the film<br />
Richmond <input type="checkbox" name="cinema" value="Wimbledon" /><br />
Kingston <input type="checkbox" name="cinema" value="Sutton" /><br />
Feltham <input type="checkbox" name="cinema" value="Kingston" /><br />
</p>
这是我们老师给出的带有foreach循环的响应页面,看起来它不起作用
> <?php
> $cinema =$_POST['cinema'];
>
> foreach ( $cinema as $cinemalocation) {
> print "Cinema Location:".$cinemalocation."<br />";
> };
> ?>
我也不允许对表格进行调整,我一直试图找到答案几个小时。到目前为止似乎没有任何帮助。
答案 0 :(得分:0)
我不相信你可以不修改表格。 GETting和POSTing表单只会发送您在value属性中的内容。
如果您能够更改表单,则可以在元素上设置ID并使用javascript。
此外,鉴于您的输入是自我关闭的
<input type="checkbox" name="cinema" value="Wimbledon" />
HTML字段中实际上没有任何内容。
更新: 鉴于你提到你的导师想要一个if elseif解决方案,也许这就是你正在寻找的东西
<?php
$cinema =$_POST['cinema'];
foreach ( $cinema as $cinemalocation) {
// print "Cinema Location:".$cinemalocation."<br />";
if( $cinemalocation == 'Wimbledon'){
echo "Cinema Location: Richmond <br />";
}
elseif if( $cinemalocation == 'Sutton'){
echo "Cinema Location: Kingston <br />";
}
elseif if( $cinemalocation == 'Kingston'){
echo "Cinema Location: Feltham <br />";
}
else{
echo "Cinema Location: Unknown <br />";
}
};
?>
答案 1 :(得分:0)
假设您可以更改给定的响应页面代码,并且假设这是一个有限的场景,只需知道所需的值,您可以这样做:
<?php
$cinema = $_POST['cinema'];
foreach ( $cinema as $cinemalocation) {
if ($cinemalocation == 'Wimbledon') {
print "Cinema Location: Richmond<br/>";
} elseif ($cinemalocation == 'Sutton') {
print "Cinema Location: Kingston<br/>";
} elseif ($cinemalocation == 'Kingston') {
print "Cinema Location: Feltham<br/>";
}
}
?>
再一次,这是基于提供的有限指示和信息。正如其他人所指出的那样,这不是最佳实践,甚至不是现实世界的情景。 html不会在POST中传回,即使是这样,也有更好的方法可以根据发布的选项实现值的输出。