未捕获的SyntaxError:无效或意外的令牌

时间:2017-07-01 07:39:14

标签: javascript php jquery

这是我的代码:

<script type="text/javascript">

var logged      =  "<?php echo $_SESSION['LoginValidation'] ?>"; // check loging or not for voting, favoriting and ...

$(document).ready(function(e) {

$(document).scroll(function () {
         var y = $(this).scrollTop();

        if (y > 37) {
            $("#header").addClass("header_shadow");
              }

        else
             $("#header").removeClass("header_shadow");
        });

});

</script>

它抛出了这个错误:

enter image description here

图像似乎我在行尾没有分号,但正如你在代码中看到的那样,我已经写过了。

那么问题是什么?我该如何解决?

3 个答案:

答案 0 :(得分:1)

错误显示&#34;未定义索引:LoginValidation&#34;,因此您需要在引用它之前确保它存在。我不知道您打算如何使用代码,但您可以执行以下操作:

var logged =  "<?php echo isset($_SESSION['LoginValidation']) 
                     ? $_SESSION['LoginValidation'] 
                     : ''; ?>";

如果它存在,这将使用$_SESSION['LoginValidation']的值,否则它将设置一个空字符串(&#34;&#34;)。

答案 1 :(得分:0)

您在 php tag echo语句中缺少分号。

var logged= "<?php echo $_SESSION['LoginValidation'] ?>"

只需更改

var logged= "<?php echo $_SESSION['LoginValidation']; ?>"

<强>解决

首先检查会话是否具有值

var logged= "<?php echo (isset($_SESSION['LoginValidation'])?$_SESSION['LoginValidation']:''); ?>"

它适用于你。

答案 2 :(得分:0)

如果$_SESSION['LoginValidation']并非总是存在,则您需要至少返回null或其他内容以分配给logged

幸运的是,如果你使用json_encode()正确输出这个变量(这使它与JSON兼容),这会自动发生!

var logged = <?php echo json_encode($_SESSION['LoginValidation']) ?>;

如果那个变量不存在,我会留给你决定你想要处理的方式。你真的应该测试它(isset()!empty()等),这样你就不会在日志中结束警告。 (另外,关闭输出中的警告和错误输出...转而将它们转储到日志中。)