通过Jquery / Javascript插入会话值

时间:2012-08-16 05:53:43

标签: javascript jquery .net session scripting

是否可以通过JavaScript或Jquery在会话变量中插入会话值?

我确实感觉session["variable_name"] = "some value";无效

即使我尝试<%session["variable_name"] %> = "some value"这也不起作用。

但是可以从会话中读取。

它说..在Javascript中没有名为“Session”的关键字。

任何解决方法......

现在我已经通过Cookies完成了它,但我需要通过会话来完成。

有谁在这里经历过?

4 个答案:

答案 0 :(得分:0)

如果要在页面上“实时”更改会话变量,可以使用$ .ajax运行一个在PHP脚本中设置会话变量的小脚本,例如:

var data = 'sessioninfoiwanttostore='+myJavascriptVar ;
$.ajax({
    url: 'set-session-script.php',
    type: 'POST',
    data: data
})

然后在你的PHP脚本中:

<?PHP
session_start() ;
$_SESSION['whatever'] = $_POST['sessioninfoiwanttostore'] ;
?>

但请注意,这不会更改已根据会话变量加载的页面上的任何数据。

答案 1 :(得分:0)

PHP会话值在服务器上设置,这意味着javascript可以操作它们的唯一方法是,如果您使用ajax向另一个页面发出请求以设置值,例如: JS:

$('.updateSession').on('click', function(){
    $.post('updatesession.php', 'name=john', function(){
        alert('Session Updated!');
    })
});

PHP:

<?php
    session_start();
    if($_SERVER['REQUEST_METHOD'] === 'POST'){
        $_SESSION['name'] = $_POST['name'];
    }
?>

答案 2 :(得分:0)

通常,会话存储在服务器上,因此在浏览器中运行的javascript和jquery无法访问会话。从会话中读取意味着服务器将值呈现到js可以访问它的html中。

由于cookie也存在于浏览器中,因此js可以直接访问它们。

作为一种解决方法,您可以编写某种ajax调用,将要插入的键/值发布到会话中,并在服务器端发送一个小助手,它将此值放入会话中。

答案 3 :(得分:0)

在C#中创建一个webmethod,用于更新将通过

访问的会话值
[webmethod]

    public static void sesstion_update(session_value)
    {
        httpcontext.current.session["name"] = session_value;
    }
使用

Jquery的$.ajax方法调用此Web方法并传递您要通过数据存储在会话中的值