Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中更改onclick事件上现有会话变量的值,同时保持在同一页面上_Javascript_Jquery_Ajax_Events_Jstl - Fatal编程技术网

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

在javascript中更改onclick事件上现有会话变量的值,同时保持在同一页面上,javascript,jquery,ajax,events,jstl,Javascript,Jquery,Ajax,Events,Jstl,我想在不使用表单并重定向到其他页面的情况下,在页面上单击按钮时更新会话属性的值 我已经看过JSTL和Scriptlet,但是因为它们发生在服务器端,所以在单击按钮之前就已经发生了 我研究过AJAX,但我不完全确定整个过程是如何工作的 关于如何做到这一点有什么建议吗 可以合并到以下内容中的内容: 函数myFunction() { //setAttribute(“会话变量名称”、“新值”) } Change变量 PHP-side-code//更改会话的PHP文件。PHP <?php

我想在不使用表单并重定向到其他页面的情况下,在页面上单击按钮时更新会话属性的值

我已经看过JSTL和Scriptlet,但是因为它们发生在服务器端,所以在单击按钮之前就已经发生了

我研究过AJAX,但我不完全确定整个过程是如何工作的

关于如何做到这一点有什么建议吗

可以合并到以下内容中的内容:

函数myFunction()
{
//setAttribute(“会话变量名称”、“新值”)
}
Change变量

PHP-side-code
//更改会话的PHP文件。PHP

<?php 
    if( isset($_POST["sessionVarName"]) && isset($_POST["sessionVarValue"]) ) 
    {
        $_SESSION[$_POST["sessionVarName"]] = $_POST["sessionVarValue"] ;
    }
    exit();
?>
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");

希望这有帮助。

这不是php的问题。这与jspIt有关,这是一个Ajax问题。我以php为例,但他可以将其更改为任何其他服务器语言,然后您可能应该删除
php端代码
,并将其替换为常规
服务器端抽象
,非常感谢!但是有一个问题不是在servlet中而是在jsp中:
HttpSession session=request.getSession();字符串newValue=${param.newSessionValue};setAttribute(“会话变量名称”、“新值”)它可以是sevlet或jsp格式。。取决于你想在那之后得到什么。如果您将其放在servlet中,那么请确保更改URL以指向该特定servlet。
HttpSession session = request.getSession();
String newValue= ${param.newSessionValue};
setAttribute("session_variable_name", "newvalue");