【问题标题】:How to update SESSION variable with jQuery + AJAX, is it even possible?如何使用 jQuery + AJAX 更新 SESSION 变量,它甚至可能吗?
【发布时间】:2012-03-10 22:58:13
【问题描述】:

我想更新会话变量。

让我用简单的例子来介绍一下。我们得到一个 div,其中包含由 PHP 脚本打印的输入字段,以及一些值等...

示例 PHP 代码:

echo '
<div id="few-input-fields">
<input id="Name" size="20" value="' . $_SESSION['name'] . '" />
<br />
<input id="Lastname" size="20" value="' . $_SESSION['lastname'] . '" />
</div>
<span id="save">save</span>
</div>
';

假设用户编辑此输入字段 (id=Name) 并在其中输入名称“Mark”,然后按保存文本。

点击它应该保存/更新会话变量,无需重新加载页面和刷新输入字段。

这可能吗?也许用ajax/jquery?最重要的是如何?

【问题讨论】:

  • 您可以像处理任何其他 AJAX 表单一样处理它。无需将数据保存到数据库或执行其他操作,您只需将数据保存到 PHP 脚本中的会话中即可。
  • pass a variable from PHP to JavaScript 的可能重复项 - 就在不久前,有人问过这个问题。请先使用搜索!
  • @hakre 对不起,但这甚至不是我想要的。我使用搜索,感谢负分:D
  • @Drazek:对不起,恰恰相反(同样经常被问到,所以最好提高你的搜索技巧;)):How can I pass variables from JavaScript to PHP?
  • @hakre 对不起,我的搜索技巧还不错,只是我的解释或呈现问题太糟糕了,因为我无法解释我想知道的内容,我通常不会正确回答,我想我将不得不更多地学习英语:)

标签: php jquery ajax


【解决方案1】:

是的,只需执行一个简单的 AJAX 请求。使用 jQuery 会是:

$("#formid").submit(function(){
   $.ajax({
      type: "POST",
      url: "someFileToUpdateTheSession.php",
      data: $(this).serialize(),
      success: function(){
          // Do what you want to do when the session has been updated
      }
   });

   return false;
});

还有你的 PHP:

<?php
   session_start();
   $_SESSION["name"] = $_POST["name"];
   // Add the rest of the post-variables to session-variables in the same manner
?>

注意

您需要在输入字段中添加名称属性。

【讨论】:

  • 修改会话数据需要在服务器端完成,所以你需要提交表单来做到这一点。
  • @phpdev 好吧,Ajax 请求是在服务器端处理的,所以这种方法与以默认方式提交表单一样好。无论哪种方式,HTTP POST 请求都将发送到服务器。您不必以默认方式提交表单来更新会话 - 您自己试试吧!
  • @ChristoferEliasson:这是对 Drazek 评论的回应;)
  • @phpdev Ahh 对此感到抱歉,完全误解了该评论:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多