【问题标题】:how to destroy a session inside a javascript [duplicate]如何在javascript中销毁会话[重复]
【发布时间】:2018-04-06 10:37:55
【问题描述】:

我创建了一个存储一些数据的会话,根据模态内部的条件,这些数据在单击 2-3 次后显示在模态中。我希望一旦关闭此模式,会话就会被销毁。

我创建了多个会话,我正在处理的会话是以下会话

$data = array(
  'id' => $row->id,
  'name' => $row->name,
  'email' => $row->email,
  'loggedin' => true
);

$this->session->set_userdata($data);

我有以下代码来检测模态是否已关闭

<script type="text/javascript">
   $('#modal_large').on('hidden.bs.modal', function (e) {
    console.log("closed");

  })

</script>

在所有会话中,我希望仅销毁此会话,为此我使用以下代码

$this->session->unset_userdata('loggedin');

但我不知道如何在 javascript 中取消设置会话

谁能帮我解决这个问题

【问题讨论】:

  • 您可以使用 ajax 来销毁会话。
  • @Dave 我该怎么做?它会检测模态关闭部分吗,因为我只想在模态关闭时销毁会话
  • I don't know how i can unset the session inside javascript 你不能。 JS在客户端运行,会话存储在服务器上。它们是两个无法直接通信的独立实体。为了实现你所需要的,你需要从 JS 向 PHP 发送一个 AJAX 请求,然后销毁你需要的会话值
  • @sammy : 创建一个函数来销毁会话,然后调用 ajax 到该函数。

标签: javascript php jquery codeigniter session


【解决方案1】:

您可以在模态关闭时使用ajax 进行服务器调用。

<script type="text/javascript">
   $('#modal_large').on('hidden.bs.modal', function (e) {
    console.log("closed");
    // Add a get request to a server URL to process logout
    $.get( "site/logout", function( data ) { // put your URL instead
      // Route to a login screen or something, the logout is complete
      alert( "Logout complete." );
    });
  })
</script>

然后,在指定 URL 的控制器中,您可以调用您提到的行:$this-&gt;session-&gt;unset_userdata('loggedin');

【讨论】:

  • 它没有检测到模态是否已关闭,因此不是 URL 不起作用
  • 好吧,这听起来像是一个完全不同的问题,而且超出了这个问题的范围。也许看看这里:stackoverflow.com/questions/18568278/…
猜你喜欢
  • 2014-02-09
  • 2018-01-21
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 2014-05-26
相关资源
最近更新 更多