是否可以通过JavaScript或Jquery在会话变量中插入会话值?
我确实感觉session["variable_name"] = "some value";
无效
即使我尝试<%session["variable_name"] %> = "some value"
这也不起作用。
但是可以从会话中读取。
它说..在Javascript中没有名为“Session”的关键字。
任何解决方法......
现在我已经通过Cookies完成了它,但我需要通过会话来完成。
有谁在这里经历过?
答案 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方法并传递您要通过数据存储在会话中的值