如何将PHP会话变量传递给Symphony中的外部JS文件

时间:2017-07-08 06:37:36

标签: javascript php symfony session

目前,我正在一个关于员工绩效评估的PHP Symphony项目中工作。 所以我需要知道我们如何获得员工的PHP会话变量(员工角色)请参阅php文件($role = $_SESSION['empRole'];)到外部js文件。(js文件也附加)。我正在使用PHP Symphony框架。

实际上我需要检查谁登录到该网站。如果是admin / core members / Hr。 只有当Coremembers登录网站时,我才需要对某些文件应用验证。

以下是我需要将$ role传递给外部JS文件(在pastebin中)的代码部分

    public function executeIndex(sfWebRequest $request) {
        if (isset($_SESSION['empId'])) {
            $role = $_SESSION['empRole'];
            if ($role == "admin") {
                $empId = $this->getUser()->getAttribute('empId');
                $team_members = GroupwareEmployeesPeer::getAllSubordinatesId($empId`enter code here`);
                $nc = new Criteria();
                $nc->add(PeD`enter code here`ates`enter code here`Peer::NAME, 'Dashboard');
                $resultset = PeDatesPeer::doSelect($nc);

所以你们可以给我一个解决方案,因为我长期坚持这个。

请参阅php和外部js文件的密码代码。

https://pastebin.com/kbkLjSFa - PHP文件。

https://pastebin.com/M60Rg64U - JS文件

2 个答案:

答案 0 :(得分:1)

是的,您可以将 php变量放入 js文件

方法I:

将.js文件重命名为.js.php,并将php变量作为查询字符串传递给此文件,在此文件中将此文件链接到页面中。

所以,如果您有一些test.js文件,请将其重命名为test.js.php并在您的页面中使用它

<script src="test.js.php?session_var=<?= $your_var_here;?>&any_var=<?= $any_php_var;?>"></script>

在您的js文件中,从查询字符串参数中检索值 所以在test.js.php里面,你可以简单地

var some_var = "<?= $_GET['session_var']";
var any_var = "<?= $_GET['any_var'];?>";
//rest of your logic goes here

方法II:

使用AJAX请求。

var some_var, another_var; 
$.ajax({
  url : '/url-which-returns-session-vars', //return the session data in json from this url
  asnyc : false,
  dataType : 'json', 
  success : function(res){
     some_var = res.some_var;
     another_var = res.another_var;
  }
});
//rest of the logic goes here.

这两种方法都有效。但我更喜欢第一种方法,因为我不需要编写额外的代码。

修改 假设ajax调用的响应看起来像这样

{
   some_var : 'value here',
   another_var : 'another value here'
}

成功函数参数中的 res 包含此响应,由于响应是JSON,您可以使用访问这些值。符号即可。 因此,

some_var = res.some_var;
another_var = res.another_var;

由于这些变量是全局变量,因此您可以在此文件的代码中的任何位置使用它们。

答案 1 :(得分:0)

 ?> <script> var php_variable = '<?php $variable ?>'; </script> <?php
应在Global文件external js之前声明

include变量。在js文件中使用此变量名称php_variable

访问它

以上代码之后。应该包含jquery外部文件

<script src="external.js" ></script>

<强> external.js

consol.log(php_variable);