php - php echo 和 javascript alert 上的变量不同

标签 php javascript

<分区>

我有一个动态的多语言网站。 我的 php 正确地回应了当前的语言,但是 javascript 即使在 body 之后加载也没有。

我的 php:

<?php echo $language ?>

这会根据正在使用的语言为我提供英语、葡萄牙语、德语或法语。

当我以这种方式尝试使用 javascript 时:

    <script type="text/javascript">
    function language() {
        var ci = {
            language : "<?php echo $language; ?>"
        };
        if(ci.language = 'portuguese') {
            alert(ci.language);
            return false;
            fb_language = "pt_PT";
        } else if (ci.language = 'english') {
            alert(ci.language);
            return false;
            fb_language = "en_US";
        } else if (ci.language = 'german') {
            alert(ci.language);
            return false;
            fb_language = "de_DE";
        } else if (ci.language = 'french') {
            alert(ci.language);
            return false;
            fb_language = "fr_FR";
        } else {
            fb_language = "en_US";
        }
    };
    </script>

<body onload="language();">

它总是在 javascript 中为我提供葡萄牙语,但无法提示正确的语言,但在 php 中它为我提供了我正在使用的正确语言。

最佳答案

这个:

if(ci.language = 'portuguese') {

应该是:

if(ci.language === 'portuguese') {

在其他 if 语句中依此类推。

关于php - php echo 和 javascript alert 上的变量不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377903/

相关文章:

php - 通过 CLI 以编程方式添加 Joomla 文章

php - 将当前月份值与数组中前一个最后 5 个月的值相加

javascript - 仅在单击后加载 iframe

javascript - 如何在第一个选项标签上应用斜体

javascript - 使用包含内部 promise 的一系列 promise

forms - PHPUnit:使用存储在 Symfony2 中的 session 变量测试表单提交

php - PDOStatement 的 bindValue 仅适用于 "0"的值

javascript - 为什么 Javascript ===/== 字符串相等有时具有常数时间复杂度,有时具有线性时间复杂度?

javascript - 检查值是否在 change() 触发时改变

php - 两个表不相等