我已设置会话变量' activeAcademicyearStartsOn'在登录时。
如果我们在view.php中使用var_dump()会话变量,则输出类似于
object(stdClass)#11 (1) { ["$date"]=> object(stdClass)#12 (1) { ["$numberLong"]=> string(13) "1546297200000" } }
现在在view.php文件中,我试图在javascript标记内的javascript代码中获取会话变量,如
$("#session_start_date").val(getDateString('<?php echo $_SESSION['activeAcademicyearStartsOn'] ?>'));
所有Javascript都停止工作。
<script type="..">
...
...
$(document).ready(function(){
...
$("#session_start_date").val(getDateString('<?php echo $_SESSION['activeAcademicyearStartsOn'] ?>'));
...
});
function getDateString(str)
{
if (str == '')
return;
var dateObj = new Date(str.$date.$numberLong - 1000);
var month = dateObj.getMonth() + 1; //months from 1-12
var day = dateObj.getDate();
var year = dateObj.getFullYear();
return (month + "/" + day + "/" + year);
}
</script>
为了测试,如果我放置另一个会话变量,它就像
一样正常 $("#session_start_date").val('<?php echo $_SESSION['uid'] ?>');
任何帮助表示感谢。
答案 0 :(得分:1)
在我看来,你在php中回显一个对象,在javascript中引用一个带引号的字符串,并将它用作你函数中的一个对象。
如果你拿走你的php对象,并将其转换为javascript对象,我认为它应该更好。
$("#session_start_date").val(getDateString(<?php echo json_encode($_SESSION['activeAcademicyearStartsOn']); ?>));
答案 1 :(得分:0)
你需要做两件事
$("#session_start_date").val(getDateString(<?php echo json_encode($_SESSION['activeAcademicyearStartsOn']); ?>));
(这整段代码是1行。)
str = JSON.parse(str);
在getDateString()函数中。