22

我有一个 php 变量:

$name_of_current_page

我认为这是可用的,我想让 jquery 可以使用该值。最好的方法是像下面这样吗?

$(document).ready(function () {
            var current page = "<?php echo $name_of_current_page; ?>" ;

});
4

4 回答 4

30

这真的取决于您是否使用某种模板引擎。

  1. 如果您使用的是纯 PHP,则唯一的选择是echo变量:

    var current page = "<?php echo $your_var; ?>";
    
  2. 树枝引擎:

    var current page = "{{ your_var }}";
    
  3. SmartyRainTPL引擎:

    var current page = "{$your_var}";
    

如您所见,还有其他方法。他们都工作正常。这实际上取决于您希望如何编写和组织代码。我个人使用 Twig,发现它非常简单、快速和直接。

此外,正如其他人指出的那样,您可以对服务器进行 AJAX 调用并获取这样的变量。我发现这种方法耗时、低效且不安全。如果您选择此方法,您将向脚本发布请求。每个人都可以向该脚本发送/获取请求,这为某些机器人和 DoS/DDoS 攻击打开了大门。

于 2013-06-05T18:48:40.067 回答
6

var当前页面= "" ;

我不认为你可以在变量中有空格。(我可能是错的)。

无论如何,为了简化您的代码,我刚刚稍微重做了一遍。

$name_of_current_page = "HomePage";

对于Javascript;

var currentPage = "<?= $name_of_current_page; ?>";

应该是这样的。

于 2013-06-05T18:09:39.540 回答
0

document.title应该给你你需要的东西..这样的事情要么查询 DOM 要么 Ajax 恕我直言。

我发现最好将层分开,而不是将表示和控制器与胡椒的 html/php 代码混合。

于 2013-06-05T18:06:25.400 回答
0

首先,你问的是填充客户端代码的正常方式,但是这个会在页面加载时加载,如果你想在页面加载后实时运行它,你必须使用 ajax,原因是与服务器端脚本通信的方式是,一旦页面加载完成,jquery 或 javascript 就无法实时加载 php vars

于 2013-06-05T18:15:19.863 回答