这是我的代码:
<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>
它抛出了这个错误:
图像似乎我在行尾没有分号,但正如你在代码中看到的那样,我已经写过了。
那么问题是什么?我该如何解决?
答案 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()
等),这样你就不会在日志中结束警告。 (另外,关闭输出中的警告和错误输出...转而将它们转储到日志中。)