调用JS函数时销毁会话变量

时间:2013-06-30 16:38:15

标签: php javascript jquery

我创建了一个名为destroy()按钮onclick事件的函数logout。但问题是服务器端代码在该函数中总是在页面加载时被调用,无论是否单击了注销按钮。我想要做的就是为lastVisit按钮的会话可变onclick logout事件设置一个值。请让我知道什么是合适的方式,谢谢,

              function destroy()
                {
                <?php $_SESSION['lastVisit'] = "logout"; ?>
                alert('hi');

                }

2 个答案:

答案 0 :(得分:2)

你正在混合php代码和javascript代码,他们不能一起工作,你需要做一个ajax调用,这很简单,因为你使用的是jQuery。

Javascript

jQuery(document).ready(function() {
   jQuery("#LogoutButtonID").click(destroy());
});
function destroy() {
   jQuery.ajax({
      "url":"http://www.example.com/someScriptToLogout.php",
      "success":function() {
         alert("i logged out");
      }
   });
}

和someScriptToLogout.php

<?php
session_start();
$_SESSION['lastVisit'] = "logout";

答案 1 :(得分:1)

为什么不采用Ajax方式?

PHP:

if(isset($_POST['endSession'])){
destroy();

echo 'Hi';
}

function destroy(){
  $_SESSION['lastVisit'] = "logout"; 
                }

的javascript:

$.post('logOut.php',{endSession:'yes'},function(hi){

alert(hi)

})

肯定会做你想做的事情

请注意:此解决方案将假设您的页面中包含jQuery,并且您的php代码位于名为logOut.php的页面中