首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP头位置不能正常工作

PHP头位置不能正常工作
EN

Stack Overflow用户
提问于 2013-09-12 02:37:33
回答 3查看 120关注 0票数 0

有人能告诉我为什么下面的东西不起作用吗?它只重定向到第一个位置,即使我选择不同的单选按钮。

PHP:

代码语言:javascript
复制
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:

代码语言:javascript
复制
<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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-12 02:39:41

您必须使用比较运算符==而不是=

代码语言:javascript
复制
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()也是多余的,因为您已经在重定向到另一个页面。

票数 5
EN

Stack Overflow用户

发布于 2013-09-12 02:39:43

=是任务。==是平等的。你把两个人搞混了。

票数 2
EN

Stack Overflow用户

发布于 2013-09-12 02:45:17

要添加到其他答案,当您使用赋值运算符(=)而不是比较运算符(==或===)时,赋值将从右向左传递。

因此,以下情况是正确的:

代码语言:javascript
复制
"camera" == $_POST['electronics'] = "camera"

在您的例子中,这足以满足if

同样的行为允许您使用一个值进行多个赋值。

例:

代码语言:javascript
复制
$foo = $bar = 10;

$foo$bar都被指定为10。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18754442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档