PHP标记

时间:2018-06-18 09:12:06

标签: javascript php

我已设置会话变量' 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'] ?>');

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

在我看来,你在php中回显一个对象,在javascript中引用一个带引号的字符串,并将它用作你函数中的一个对象。

如果你拿走你的php对象,并将其转换为javascript对象,我认为它应该更好。

$("#session_start_date").val(getDateString(<?php echo json_encode($_SESSION['activeAcademicyearStartsOn']); ?>));

答案 1 :(得分:0)

你需要做两件事

  1. 将json_encoded字符串传递给javascript调用,如@Noino所述。
  2.   

    $("#session_start_date").val(getDateString(<?php echo json_encode($_SESSION['activeAcademicyearStartsOn']); ?>));

    (这整段代码是1行。)

    1. 在使用这些值之前,解析此JSON字符串以使其成为javascript对象。
    2.   

      str = JSON.parse(str);

      在getDateString()函数中。