2011-04-18 53 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'; 
}