在javascript中的onclick事件上更改现有会话变量的值,同时保持在同一页面上

时间:2015-10-05 00:52:23

标签: javascript jquery ajax events jstl

我希望在页面上单击按钮而不使用表单并重定向到其他页面时更新会话属性的值。

我查看了JSTL和scriptlets,但因为这些都发生在服务器端,所以它们已经在单击按钮之前发生。

我已经研究过AJAX,但我并不完全确定整个过程是如何运作的。

有关如何完成此任务的任何建议?

可以纳入的内容:

function myFunction()
{
    //setAttribute("session_variable_name", "newvalue")
}
<button onclick="myFunction()">Change Variable</button>

2 个答案:

答案 0 :(得分:1)

Ajax是要走的路:

Jquery ajax:

var request = $.ajax({
  url: "/changesession.jsp", 
  type: "POST",
  data: ["newSessionValue"=>'newSessionValue'],
});

request.done(function( msg ) {
  alert('suceess changed');
});


request.fail(function(msg)) {
   alert('failed ajax')
});

changesession.jsp

HttpSession session = request.getSession();
String newValue= ${param.newSessionValue};
setAttribute("session_variable_name", "newvalue");

希望这有帮助。

答案 1 :(得分:-1)

PHP边码// the_php_file_that_change_your_session.php

<?php 
    if( isset($_POST["sessionVarName"]) && isset($_POST["sessionVarValue"]) ) 
    {
        $_SESSION[$_POST["sessionVarName"]] = $_POST["sessionVarValue"] ;
    }
    exit();
?>

Javascript边码

function myFunction()
{
    $.post("the_php_file_that_change_your_session.php",{sessionVarName:sessionVarName_Value,sessionVarValue:sessionVarValue},function()
    {
        // do what you want after the Session variable is changed
    });
}