使用php捕获ajax脚本中的错误

时间:2011-10-18 10:01:32

标签: php ajax error-handling

为了使调试更容易,我在我的PHP代码中引入了一个错误处理程序,它收集所有错误,警告等,并记录数据库查询,并在管理员登录到页面末尾时显示它们。站点。

我想为ajax查询做类似的事情。更一般地说,我想将两个错误面板集成在一起,但我不知道如何做到这一点。

我想要的大概是一个弹出式面板,页面上有错误,包括异步脚本中的错误。

我已经有了制作弹出式面板并用ajax请求填充数据的方法。

我想过使用彗星模式用于错误窗口并使用php注册一个退出处理程序,它发送一个http请求,以某种方式将错误传递给窗口,但我不太清楚如何去做这个以及如何将它全部绑定到php会话(例如,用户不会看到其他错误。)

任何想法如何解决这个问题?我有什么简单的东西可以忽略吗?

1 个答案:

答案 0 :(得分:0)

好的,我最终做的事情似乎工作得很好:

我写了一个php函数,它收集页面上的所有错误并输出一个特殊格式的div,其中class =“systemError”。它包含一个标题,其中包含调用它的文件名以及包含错误列表的div。让我们说这个函数叫做“xx_error_get($ filename)”

然后我让每个ajax脚本返回此字符串作为其结果的一部分。我所做的只是添加一个电话

echo xx_error_get(__FILE__);

在返回的XML对象的末尾。

回到主页的php中,我在id =“systemTemp”中添加了一个隐藏的div到我的身体

然后我在jQuery中的$(document).ready处理程序中添加了几行:

    $(document).ajaxSuccess(function(e, xhr, settings) {
                    $("#systemTemp").html(xhr.responseText);
                    $("#systemError").prepend($("#systemTemp").children(".systemError").html());
                    $(".systemError").remove();
                    $("#systemTemp").empty();
                    $("#systemError").accordion("destroy");
                    $("#systemError").accordion({autoHeight:false});            
    });

不完全是最干净的代码,但我希望这对任何人都有帮助。