如何从.js文件中的jQuery函数访问PHP会话变量?

Ahm*_*rid 21 javascript php jquery

如何从.js文件中的jQuery函数访问PHP会话变量?在这段代码中,我想从会话变量中获取"值"

$(function() {
   $("#progressbar").progressbar({
      value: 37
   });
});
Run Code Online (Sandbox Code Playgroud)

Eri*_*rik 52

您可以通过PHP生成javascript文件.没有什么说javascript文件必须有.js扩展名.例如,在您的HTML中:

<script src='javascript.php'></script>
Run Code Online (Sandbox Code Playgroud)

然后你的脚本文件:

<?php header("Content-type: application/javascript"); ?>

$(function() {
    $( "#progressbar" ).progressbar({
        value: <?php echo $_SESSION['value'] ?>
    });

    // ... more javascript ...
Run Code Online (Sandbox Code Playgroud)

如果这个特定方法不是一个选项,你可以在你的javascript文件中放入一个AJAX请求,并将数据从服务器端脚本返回为JSON.

  • 艾哈迈德,你有点不清楚.浏览器不关心您的javascript文件的名称.将文件从"script.js"重命名为"script.php",然后使用您在上面显示的会话变量.你可以在任意多个文件中使用尽可能多的`$(document).ready()`块,它可以正常工作. (2认同)
  • 您还应该使用简单的PHP标头将文件类型设置为JavaScript,将其放在JS(.php)文件的顶部:`<?php header("Content-type:application/javascript"); 没有它可以工作,但最好将它设置为只是因为浏览器知道它的内容是JavaScript. (2认同)

Kri*_*imo 11

我正在努力解决同样的问题,偶然发现了这个页面.我想出的另一个解决方案是:

在你的html中,将会话变量(我的在这里$_SESSION['origin'])回显给你选择的任何元素: <p id="sessionOrigin"><?=$_SESSION['origin'];?></p>

在你的js中,使用jQuery你可以像这样访问它: $("#sessionOrigin").text();

编辑:甚至更好,把它隐藏起来input

<input type="hidden" name="theOrigin" value="<?=$_SESSION['origin'];?>"></input>


icc*_*c97 7

如果你想更清晰地分离PHP和JS(它使IDE中的语法高亮和检查更容易),那么你可以为你的代码创建jquery插件,然后将$ _SESSION ['param']作为变量传递.

所以在page.php中:

<script src="my_progress_bar.js"></script>
<script>
$(function () {
    var percent = <?php echo $_SESSION['percent']; ?>;
    $.my_progress_bar(percent);
});
</script>
Run Code Online (Sandbox Code Playgroud)

然后在my_progress_bar.js中:

(function ($) {
    $.my_progress_bar = function(percent) {
        $( "#progressbar" ).progressbar({
            value: percent
        });
    };
})(jQuery);
Run Code Online (Sandbox Code Playgroud)