基于javascript中的会话变量设置特定的样式表

Set a specific stylesheet based on session variable in javascript

本文关键字:样式 设置 变量 javascript 会话 基于      更新时间:2023-09-26

我有一个选项,用户可以在登录系统时选择自己的主题,这个主题在MYSQL数据库中设置,每次用户登录时都会调用,调用方式为:

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

现在,我在一个PHP文件中完成了这项工作,但不幸的是,我需要它在Javascript中工作。我需要一些帮助。我使用Google Chrome上的开发工具查看了这些代码,看起来上面的代码没有在javascript文件中解析。这是有道理的,因为你不能访问javascript文件中的会话变量(正如我在谷歌搜索中发现的那样)

该代码基本上应该根据从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'>";

。)"

当然可以。将您的javascript文件命名为foo.php

在内部,您可以使用PHP:

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