有人能告诉我为什么下面的东西不起作用吗?它只重定向到第一个位置,即使我选择不同的单选按钮。
PHP:
if (isset($_POST['submit'])) {
if (!empty($_POST['electronics'])) {
if ($_POST['electronics'] = "camera") {
header("location: camera.php");
exit();
}
if ($_POST['electronics'] = "cell") {
header("location: cellphones.php");
exit();
}
if ($_POST['electronics'] = "cable") {
header("location: cables.php");
exit();
}
if ($_POST['electronics'] = "tv") {
header("location: tv.php");
exit();
}
}
...HTML:
<form action="" method="post">
<input type="radio" name="electronics" value="cell"/>
<input type="radio" name="electronics" value="camera"/>
<input type="radio" name="electronics" value="cable"/>
<input type="radio" name="electronics" value="tv"/>
<input type="submit" name="submit">
</form>发布于 2013-09-12 02:39:41
您必须使用比较运算符==而不是=。
if (isset($_POST['submit'])) {
if (!empty($_POST['electronics'])) {
if ($_POST['electronics'] == "camera") {
header("location: camera.php");
}
else if ($_POST['electronics'] == "cell") {
header("location: cellphones.php");
}
else if ($_POST['electronics'] == "cable") {
header("location: cables.php");
}
else if ($_POST['electronics'] == "tv") {
header("location: tv.php");
}
}
...而且,exit()也是多余的,因为您已经在重定向到另一个页面。
发布于 2013-09-12 02:39:43
=是任务。==是平等的。你把两个人搞混了。
发布于 2013-09-12 02:45:17
要添加到其他答案,当您使用赋值运算符(=)而不是比较运算符(==或===)时,赋值将从右向左传递。
因此,以下情况是正确的:
"camera" == $_POST['electronics'] = "camera"在您的例子中,这足以满足if
同样的行为允许您使用一个值进行多个赋值。
例:
$foo = $bar = 10;$foo和$bar都被指定为10。
https://stackoverflow.com/questions/18754442
复制相似问题