javascript和php变量混合

时间:2014-01-23 22:10:35

标签: javascript php

为什么这段代码不起作用?

<?php
    $var = '<script type="text/javascript">
            var displayStr = "";
            switch(window.orientation)
            {
                case 0:
                    displayStr += "mobile";
                break;
                case -90:
                    displayStr += "mobile";
                break;
                case 90:
                    displayStr += "mobile";
                break;
                case 180:
                    displayStr += "mobile";
                break;

                default:
                    displayStr += "steddy";
            }
            document.write(displayStr);
        </script>';

    if($var == "steddy") {
        echo 'non rotatable';
    } elseif($var == "mobile") {
        echo 'rotatable';
    }
?>

是的我知道这不是最好的方法,但我不明白为什么这不起作用。 如果您只是回显$ var,它会很好地显示它,但“if”无法识别它。 请帮忙......

2 个答案:

答案 0 :(得分:1)

你在这里得到的是PHP字符串中的javascript代码。该代码没有执行,就PHP而言只是一些文本。

此设置中这两种语言的正确使用模式是:服务器首先运行PHP,客户端(浏览器)运行javascript秒。不幸的是,你不能只是将JavaScript注入到PHP的中间并让它工作。

答案 1 :(得分:0)

嗯......这就行了。

<?php
if($_COOKIE[rotatable] != "nope" && $_COOKIE[rotatable] != "yes") {
    if($_POST[rotatable] == "") { 
        echo '
            <form method="post" action="test.php" name="setType">
                <input type="hidden" name="rotatable" id="screen" value="">
                <script language="JavaScript">
                    var displayStr = "";
                    switch(window.orientation)
                    {
                        case 0:
                            displayStr += "yes";
                        break;
                        case -90:
                            displayStr += "yes";
                        break;
                        case 90:
                            displayStr += "yes";
                        break;
                        case 180:
                            displayStr += "yes";
                        break;
                        default:
                            displayStr += "nope";
                    }
                    var s = document.getElementById("screen");
                    s.value = displayStr;
                </script>
                <script language="JavaScript">
                    document.setType.submit();
                </script>
            </form>
         ';
    } elseif($_POST[rotatable] == "nope") {
        setcookie("rotatable", "nope", time()+3600);
        header("location: test.php");
    } elseif($_POST[rotatable] == "yes") {
        setcookie("rotatable", "yes", time()+3600);
        header("location: test.php");
    }
}

// Here comes the content of the site.


if($_COOKIE[rotatable] == "nope") {
    echo 'non rotatable';
} elseif($_COOKIE[rotatable] == "yes") {
    echo 'rotatable';
}
?>

感谢你的所有人......