繁体   English   中英

根据javascript中的会话变量设置特定的样式表

[英]Set a specific stylesheet based on session variable in javascript

我有一个选项供用户在登录系统时选择自己的主题,该主题在MYSQL数据库中设置,并在用户每次登录时调用,其调用方式为:

<?php $_SESSION['SESS_THEME_NAME']; ?>

现在,我已经在一个PHP文件中运行了它,但是不幸的是,我需要它在Javascript中运行。 我需要一些帮助。 我使用Google Chrome浏览器上的开发人员工具查看了这些代码,似乎上述代码未在javascript文件中解析。 这很有意义,因为您无法访问javascript文件中的会话变量(正如我通过搜索Google所发现的那样)。

基本上,该代码应该基于从MYSQL数据库提取的值来设置特定的样式表。 因此,如果数据库显示“ Default则脚本需要告知网页使用default.css文件。 等等等等。

我写这篇文章的尝试如下:

var themName="<?php $_SESSION['SESS_THEME_NAME']; ?>";

if (themeName == "Default") 
{
    document.write("<link re='stylesheet' type='text/css' href='css/mws-theme.css'>");
};
if (themeName == "Army")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-army.css'>");
};
if (themeName == "Rocky Mountains")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-rocky.css'>");
};
if (themeName == "Chinese Temple")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-chinese.css'>");
};
if (themeName == "Boutique")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-boutique.css'>");
};
if (themeName == "Toxic")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-toxic.css'>");
};
if (themeName == "Aquamarine")
{
    document.write("<link rel='stylesheet' type='text/css' href='css/mws-theme-aquamarine.css'>");
};

曾经的任何帮助将是非常棒的,不胜感激! 我快到了最后期限:/

我认为您使这种方式过于复杂。 为什么不直接使用PHP直接写出<link>标记呢?

$themes = array(
  'Default' => '',
  'Army' => '-army',
  'Rocky Mountains' => '-rocky'
  // etc...
);

echo "<link rel='stylesheet' type='text/css' href='css/mws-theme-{$themes[$_SESSION['SESS_THEME_NAME']]}.css'>";

“现在,我已经在一个PHP文件中运行了此文件,但不幸的是,我需要它在Javascript中运行。我需要一些帮助。我使用Google Chrome浏览器上的开发人员工具查看了这些代码,看来上面的代码无法在其中解析javascript文件。这很有意义,因为您无法访问javascript文件中的会话变量(正如我通过搜索Google所发现的那样。)”

你当然可以。 将您的JavaScript文件foo.php

在内部,您可以使用PHP:

<?php
header('Content-type: application/x-javascript');
session_start();
?>
var theme_name = "<?php echo $_SESSION['SESS_THEME_NAME']; ?>";
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM