我希望在页面上单击按钮而不使用表单并重定向到其他页面时更新会话属性的值。
我查看了JSTL和scriptlets,但因为这些都发生在服务器端,所以它们已经在单击按钮之前发生。
我已经研究过AJAX,但我并不完全确定整个过程是如何运作的。
有关如何完成此任务的任何建议?
可以纳入的内容:
function myFunction()
{
//setAttribute("session_variable_name", "newvalue")
}
<button onclick="myFunction()">Change Variable</button>
答案 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
});
}