【问题标题】:Setting a CSS Value from a PHP Variable从 PHP 变量设置 CSS 值
【发布时间】:2013-01-26 07:16:05
【问题描述】:

我想将以下 CSS 条目应用于网站:

background-image: url(http://www.datingimages.co/online-dating/dating-website/mainsiteimage/datingbali.co.jpg);

问题是我有一些这样的网站,我需要使用如下变量:

http://www.datingimages.co/online-dating/dating-website/mainsiteimage/<?php echo $_SESSION['domain'];?>.jpg

这将应用于&lt;body&gt; 标记(将背景图像添加到首页)- 将删除其他页面。

有人对使用 PHP $_SESSION 变量设置此 CSS 条目的方式有任何想法吗?

注意:我很喜欢使用 JQUERY,所以有一个解决方案会很棒...

【问题讨论】:

  • CSS 是内部的还是外部的?如果它是内部的,那就做你所做的。如果它是外部的,您将需要告诉 Apache 或 PHP(我忘记是哪个)扫描 .css 中的 php。查找如何将 PHP 放入 JavaScript 文件中,只需替换为 css。
  • 我想问一下,这个PHP变量是来自另一个页面还是同一个页面?如果它来自另一个页面,则需要将该变量与 AJAX 进行通信。否则,您应该能够使用 PHP 将它简单地插入到您需要它的文档中。
  • 找到一个教程。 net.tutsplus.com/tutorials/php/…
  • :) 非常感谢您的所有建议...我会查看页面...它的外部 CSS...我将尝试 PHP 设置的内联样式...好主意。 ..这个网站太好了..!!

标签: php jquery html css session


【解决方案1】:

在页面加载之后,您可以通过发出 ajax 请求并切换元素来重新设置它的样式。

 $(function() {
    $.get('ajax.php', ..., function(data) {
        $('#element').css('background-image', data.url);
    });
 });

或类似的东西,但我不喜欢这个主意……看起来太像猴子补丁了。

您也许可以为每个 $_SESSION 预定义 css,并在页面加载时加载它们,但这意味着您必须将 css 分成更小的文件,我认为这将是一个更合适的解决方案。

【讨论】:

    【解决方案2】:

    当用户登录时,假设您有 3 个背景图片选择。您从数据库或您拥有的任何系统中提取用户的背景偏好。也许鲍勃得到蓝色背景,而其他人得到绿色背景。然后将其存储在用户的 $_SESSION 中。例如:

    <?php
        if($_SESSION['username'] == 'bob') {
            $_SESSION['bodybg'] == "http://www.hdwallpapers.in/walls/blue_background_abstract-wide.jpg"
        } else {
            $_SESSION['bodybg'] == "http://1.bp.blogspot.com/-zx4w4PCEgEY/ULv64dBGGnI/AAAAAAAAA6Y/SRcHkfMBiJs/s1600/C4D_Green_background__by_Darkchildh.jpg"
        }
    ?>
    

    然后在生成页面的时候,或者页面的css,你把它放进去。我以css为例:

    body {
        background: url('<?php echo $_SESSION['bodybg']; ?>');
    }
    

    【讨论】:

      【解决方案3】:

      如果您不想使用更复杂的处理方法或 JavaScript,请使用内联 CSS。在我看来,你不应该为此使用 JavaScript。

      【讨论】:

        【解决方案4】:

        如果您遇到此类问题,您的架构就有问题。最好根据会话值加载不同的 html 包装器。

        【讨论】:

          【解决方案5】:

          您可以将样式规则放置在文档的头部或正文部分的任何位置。所以你可以使用这样的内联 CSS 部分:

          <?php if(isset($_SESSION['domain'])) : ?>
              <style>
                  body {
                      http://www.datingimages.co/online-dating/dating-website/mainsiteimage/<?php echo $_SESSION['domain'];?>.jpg
                  }
              </style>
          <?php endif; ?>
          

          【讨论】:

          • 非常感谢...工作得很好...不知道你可以这样做但是看到它之后,它是合乎逻辑的......再次感谢......!!
          猜你喜欢
          • 2017-07-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-19
          • 2019-02-02
          • 1970-01-01
          • 2013-01-02
          • 2013-06-05
          相关资源
          最近更新 更多