作为AJAX应用程序的一部分,PHP中的JS警报

时间:2010-08-04 03:51:25

标签: php javascript ajax alert

我有一个PHP文件被调用来通过ajax填充DIV。一切都运行良好和花花公子除了我不能为我的生活得到一个JS警告框从PHP弹出。

以下是我正在测试的内容(这是在PHP结束时加入的,我也尝试过它的开头,中间等):

 echo "does this show up?";
 echo "<script language='javascript'>alert('thanks!');</script>";  

“这会出现吗?”是回声,我可以在codeinspector中看到JS,但没有警告框。如果我将该代码放入其自己的PHP文件中(因此它不再作为更大的ajax应用程序的一部分嵌入),它的工作正常。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

通过AJAX发回script阻止是错误的方式。相反,您应该返回一个值(可能使用json_encode进行JSON,然后使用javascript JSON library进行解码),然后从脚本中调用alert。

例如,像这样的事情(未经测试,但你明白了):

PHP:

echo json_encode(Array('OperationSucceeded' => 'true', 'Message' => 'test'));

使用Javascript:

retValObj = JSON.parse(retVal);
if (retValObj.Message != null) {
    alert(retValObj.Message);
}

答案 1 :(得分:0)

在页面加载期间解析javascript一次。因此,如果你把这些代码放在页面中它工作正常....浏览器不解析ajax加载的内容...但我们可以从ajax加载的内容进行javascript函数调用。