我的javascript代码似乎正常运行。但是,当我在Chrome中查看“来源”时,它不同意实际执行的javascript。
这是我的代码:
<?php
$_SESSION['new'] = "blue";
if (!isset($_SESSION['old'])) { $_SESSION['old'] = "blue"; }
echo '<script type="text/javascript">
$(document).ready(function() {
changeCol("'.$_SESSION["old"].'","'.$_SESSION["new"].'");
});
</script>';
$_SESSION['old'] = "blue";
?>
上一页的 $_SESSION['old']="green"
。代码应该调用changeCol("green","blue")
,然后设置$_SESSION['old']="blue"
。
事实上,这两件事都发生了,所以我的代码按其设计工作,但如果我查看源代码,则说changeCol("blue","blue")
。这很奇怪,因为如果在changeCol()中我将传递的变量写入console.log
,我得到green, blue
。
因此,如果它正在调用changeCol(green,blue)
,为什么在查看来源时会说changeCol(blue,blue)
?
答案 0 :(得分:12)
当您查看来源时,您可能正在提出其他请求。您的会话变量将被重置。
如果您使用的是Chrome或Firefox(您应该使用它),则可以打开Web Developer Tools或Firebug并检查实际的DOM树。 (这在脚本动态添加内容的情况下也非常有用。)
答案 1 :(得分:1)
您是否在第二页上添加了<?php session_start(); ?>
?