2012-03-07 83 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']); 
}