如何在jquery/css中设置session变量?

e37o9pze  于 2023-08-04  发布在  jQuery
关注(0)|答案(5)|浏览(104)
jQuery(document).ready(function($){
    $("#a2").click(function(){
        $('body').css("cssText","font-size: 107% !important");
    });
});

jQuery(document).ready(function($){
    $("#a3").click(function(){
        $('body').css("cssText","font-size: 114% !important");
    });
});

jQuery(document).ready(function($){
    $("#a4").click(function(){
        $('body').css("cssText","font-size: 121% !important");
    });
});

字符串
我已经给了a2,a3,a4 id到A,A+,A++按钮。每当我的网站的访问者将点击这些按钮中的任何一个,整个网站的字体大小将相应地改变。现在字体大小正在改变,但当我刷新页面时,它再次显示默认的字体大小。我怎么能这么做呢?我需要使用Session吗?如何在CSS或jQuery中使用它?我是网站开发的新手。所以请帮帮我。

vwkv1x7d

vwkv1x7d1#

下面的代码我已经写了,它是完美的工作。我分享它,以便其他人可以参考它。

jQuery(document).ready(function($){
    var fontCookie = get_cookie('fontclass');
    if(fontCookie) {
        jQuery('body').addClass(fontCookie);
    }
    $("#a2").click(function(){
        jQuery('body').removeClass('body-18');
        jQuery('body').addClass('body-16');
        var now = new Date();
            var time = now.getTime();
            time += 3600 * 1000 * 700;
            now.setTime(time);
            document.cookie = 
            'fontclass=body-16' + 
            '; expires=' + now.toGMTString() + 
            '; path=/';
        event.preventDefault();
    });
});

字符串
像这样,我添加了a1和a3的功能,其中我根据我的要求添加和删除css类。

slmsl1lt

slmsl1lt2#

无论何时你要设置一个会话变量,你都必须使用 AJAX 来发送一个服务器端请求,它是非常轻量级的,不需要加载任何外部库

67up9zun

67up9zun3#

如果你想让一个值保留在用户的整个会话中,你需要使用PHP之类的东西将这个值或这些值的存储卸载到服务器端。在你的JavaScript中,你可以运行一个这样的函数:

<script>
    $("#a2").click(function(){
        $('body').css("cssText","font-size: 107% !important");
        setSessionVar(107);
    });
    
    function setSessionVar(s) {
        $.post( requesturl, {
            s : s,
            destinationurl: "set_s.php"},
            function( data ) {
                console.log(data)
            }
        );
    }
</script>

字符串
set_s.php

<?php
$s = intval($_POST['s']);
if($s > 100) {
    $_SESSION['font_percent'] = $s;
    echo $s;
} else {
    $_SESSION['font_percent'] = 1000;
    echo 1000;
}
?>


然后在我的标记中,我使用一个小PHP来根据服务器端会话ID设置var(如果设置了)。

<?php
$font_percent = 0;
if(isset($_SESSION['font_percent'])) {
    $font_percent = intval($_SESSION['font_percent']);
}
echo '<script>'."\n";
echo 'var $font_percent = '.intval($font_percent).'."\n";
echo '</script>'."\n";
?>


在此之后,您可以使用var $font_percent通过JavaScript操作CSS。

rsaldnfx

rsaldnfx4#

会话存储在服务器上。所以,如果你想使用session,你必须使用 AJAX 来获取和设置信息。
更简单的解决方案是使用您可以在JavaScript中管理的cookie。参见http://www.w3schools.com/js/js_cookies.asp

mv1qrgav

mv1qrgav5#

具体到问题:jquery.session.js插件服务的目的,它需要JSON插件太http://code.google.com/p/jquery-json/
店铺:

$(function() {
     $.session(“myVar, “value”);
});

字符串
阅读:

$.session(“myVar)


如果我没有得到你的权利,如果我上面的回答对你的情况没有帮助,你的描述说你想存储用户的个性化信息,这通常是存储在cookie中,在很长一段时间后过期,或者存储在后端的数据库中。

相关问题