[英]How to Pass PHP Session Variable to external JS file in Symfony
目前我在一個關於員工績效評估的 PHP Symfony 項目中工作。 所以我需要知道如何獲取員工(員工$role = $_SESSION['empRole'];
)的 PHP 會話變量我正在使用 PHP Symfony 框架。
實際上我需要檢查誰登錄了網站。如果是管理員/核心成員/人力資源。 僅當核心成員登錄網站時,我才需要對某些文件應用驗證。
這是我需要將 $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 文件的 pastebin 代碼。
https://pastebin.com/kbkLjSFa - PHP 文件。
https://pastebin.com/M60Rg64U - JS 文件
是的,您可以將php 變量放入js 文件中。
方法一:
將 your.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
方法二:
使用 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;
由於這些變量是全局變量,因此您可以在該文件的代碼中的任何位置使用它們。
?> <script> var php_variable = '<?php $variable ?>'; </script> <?php
Global
變量應該在external js
文件include
之前聲明。 在 js 文件中使用這個變量名php_variable
訪問它
在上面的代碼之后。 jquery 外部文件應該包含在這里
<script src="external.js" ></script>
外部.js
consol.log(php_variable);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.