2011-04-18 72 views
0

我希望這些線可以解釋這個問題處理的PHP代碼(阿賈克斯):如何在不返回任何值


//in javascript 
function foo(sessionName){ 
    var u = "test.php?q="+sessionName+"&r="+parseInt(Math.random()*9999999); 
    xmlHttpObj.open("get", u, true); 
    xmlHttpObj.send(); 
}  

//in php 

$q = $_GET['q']; 
unset($_SESSION[$q]); 

就像你看到的,我不希望任何返回值,我只是想取消特定會話。

+1

那麼問題是什麼?只是不處理回報 – JohnP 2011-04-18 05:52:43

+0

這沒有任何意義......我甚至不知道如何提出改進。 – rockerest 2011-04-18 05:53:19

+0

你不能,ajax會刪除原來的值,如果你沒有返回任何值,就像是返回'echo「;' – Bagong21 2011-04-18 05:56:39

回答

2

如果您訪問並運行腳本,它不會返回任何值,它將執行它的工作。問題在於如果成功,將無法​​知道,所以最好通常返回成功/失敗值。但是,由於unset()實際上並未返回值,因此在這種情況下不需要。

+0

這是假設輸入錯誤而不是你的例子中的實際錯誤:) – 2011-04-18 05:59:04

+0

對不起,我搞砸了,這是一個很長的代碼行:D – Bagong21 2011-04-25 08:14:48

1

是的,這個工程。我想你的問題是變量名中的拼寫錯誤?

var u = "test.php?q="+sessionName+"&r="+parseInt(Math.random()*9999999); 
       ^
$n = $_GET['n']; 
      ^
+0

只是忽略是否有錯字,怎麼沒有返回? – Bagong21 2011-04-18 05:59:10

+1

@Bagong只是......不要回報任何東西。看起來你已經這麼做了。 – deceze 2011-04-18 06:05:14

0

最好還是返回一個表示它是否工作的值。即使這段代碼應該工作得很好。

將此添加到腳本的末尾會爲您指示其工作與否。

if (isset($_SESSION[$n])) { 
    echo 'success'; 
} 
else { 
    echo 'fail'; 
}