2012-03-07 105 views
2

我想在点击'取消'按钮后销毁$ _SESSION ['userList']。但是,当页面加载时,$ _SESSION ['userList']被破坏。

下面是我的代码:

<a href='#' class="btn" onClick="resetForm()"><span>Cancel</span></a> 

<script type="text/javascript"> 

       function resetForm() { 
        <?php 

         unset($_SESSION['userList']); 

        ?> 

       } 
      </script> 

真的很感谢您的帮助。

回答

2

JAVASCRIPT

$.ajax({ 
    type: "POST", 
    url: "phppage.php", 
    data: "action=unsetsession", 
    success: function(msg){ 
     alert(msg); 
     if(msg == "success"){ 
      //cleared session 
     }else{ 
      //failed 
     } 
    }, 
    error: function(msg){ 
     alert('Error: cannot load page.'); 
    } 
}); 

PHP

if($_POST['action'] == "unsetsession"){ 
    unset($_SESSION['userList']); 
    echo "success"; 
} 
0

你不能像这样从JS调用PHP。你需要回电话给服务器。

3

你不能在你的javascript(客户端)中执行PHP(服务器端)。您需要发出一个HTTP请求来调用PHP。你可以使用AJAX来做到这一点。

1

您不能在客户端执行php代码,就像您在示例中尝试的那样。如果你想销毁会话并重新加载,那么你必须使用ajax请求。

1

你为这个

<a href='#' class="btn" onClick="resetForm()"><span>Cancel</span></a> 

<script> 
function resetForm() 
{ 
    jQuery.ajax({ 
     type: "POST", 
     url: "cancel.php", 
     data:, 
     cache: false, 
     success: function(response) 
     { 
     } 
    }); 
} 
</script> 

更好的使用jQuery和创建一个新的cancel.php这将是这样的 -

<?php 
unset($_SESSION['userList']); 
?> 
+0

很好的工作,我复制后.. – MakuraYami 2012-03-07 10:23:54

+0

@MakuraYami你为什么不抽出一些时间,仔细比较这两个帖子,然后得出任何结论。 – skos 2012-03-07 10:55:42

+0

你的意思是放入一个函数并添加缓存是如此的不同?祝你好运。 – MakuraYami 2012-03-07 15:49:51

0

使用提交按钮取消(您可以使用CSS来使它看起来你想在客场) // HTML

<form method="post" > 
<input type="button" value="Cancel" name="cancel" id="cancel" /> 
</form> 

// PHP

if(isset($_POST['cancel')) 
{ 
    unset($_SESSION['userList']); 
} 
相关问题