0

次のCSSエントリをWebサイトに適用したいと思います。

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

これは<body>タグに適用されています(フロントページに背景画像を追加します)-他のページでは削除されます。

$_SESSIONこのCSSエントリをPHP変数で設定する方法について誰かアイデアがありますか?

注:私はJQUERYを非常に快適に使用できるので、これを使用したソリューションは素晴らしいでしょう...

4

5 に答える 5

2

より複雑な処理方法や JavaScript に頼りたくない場合は、インライン CSS を使用してください。私の意見では、これに JavaScript を使用する必要はありません。

于 2013-02-11T07:56:13.720 に答える
2

ドキュメントの head または body セクションのどこにでもスタイル ルールを配置できます。したがって、次のようなインライン 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; ?>
于 2013-02-11T07:58:04.230 に答える
1

ユーザーがログインするとき、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']; ?>');
}
于 2013-02-11T07:54:32.300 に答える
1

このような問題に直面した場合、アーキテクチャに問題があります。セッション値に基づいて、異なる HTML ラッパーをロードすることをお勧めします。

于 2013-02-11T07:56:58.977 に答える
1

ページがロードされた後、ajax リクエストを作成して要素を切り替えることで、ページのスタイルを変更できます。

すなわち

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

またはそのようなものですが、私はこの考えが好きではありません...モンキーパッチのように思えます.

おそらく、それぞれに定義済みの css を用意$_SESSIONして、ページの読み込み時にそれらを読み込むこともできますが、それは css を小さなファイルに分割する必要があることを意味します。それがより適切な解決策になると思います。

于 2013-02-11T07:52:49.717 に答える