0

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

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

                }
4

2 回答 2

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";
于 2013-06-30T16:44:30.150 回答
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

于 2013-06-30T16:49:25.973 回答