目前,我正在一个关于员工绩效评估的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文件。
答案 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);