5

我有一个变量需要放入 javascript 文件中,但似乎无法获得任何结果。我尝试将 .js 制作成 php 并添加回声,但它不起作用。

我有一个文件在其中调用它

<script type="text/javascript" src="/file.php"></script>

在 file.php 里面我有这一行

style: {
    color: '#<?php echo $_SESSION['colorOne']; ?>'
}

当我用实际颜色 (#FFFFFF) 替换 php 时,一切正常。添加 php.ini 时遇到问题。

4

4 回答 4

2

PHP 可以模拟您想要的任何内容,甚至是图像、PDF 和 Office 文件。

首先,不要将 Javascript 与 CSS 混淆。

<link rel="stylesheet" href="/file.php">

在开始时file.php,请确保您开始会话:

<?php
session_start();
?>
.style: {
    color: #<?php echo $_SESSION['colorOne']; ?>;
}

如果这不起作用,您应该调试您的会话是否已初始化并正常工作,例如创建一个新的 PHP 文件并放入<?php session_start(); print_r($_SESSION); ?>

于 2013-09-09T05:50:09.313 回答
1

您需要在获取会话值之前调用 session_start() 函数,因此,您需要输入:

session_start();

在该文件的顶部。

此外,<script type="text/javascript" src="/file.php"></script>适用于 JavaScript 文件,而不是外部样式表,最后一点是您可以打印不带单引号的值:

color: #<?php echo $_SESSION['colorOne']; ?>
于 2013-09-09T05:51:20.520 回答
0

您的文件在被请求时需要由 PHP 处理。当您在 Apache 上时,您需要添加

AddType application/x-httpd-php .MYFILEEXTENSION

到您的 .htaccess 文件。我不太确定nginx。

一般来说,我总是在 index.php 文件中完成此操作。只需将某些内容打印到全局变量中,例如

window.phpTransitionVariables = { ... };

像这样的脚本标签

<script type="text/javascript">
    <? //print my php variables
</script>
于 2013-09-09T05:53:39.530 回答
0

<?php
header('content-type: text/css');
?>

从带有 php 扩展名的 css 文件开始

于 2013-09-09T06:07:31.620 回答