Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用php捕捉ajax脚本中的错误_Php_Ajax_Error Handling - Fatal编程技术网

用php捕捉ajax脚本中的错误

用php捕捉ajax脚本中的错误,php,ajax,error-handling,Php,Ajax,Error Handling,为了简化调试,我在PHP代码中引入了一个错误处理程序,它收集所有错误、警告等,记录数据库查询,并在管理员登录到站点时在页面末尾显示它们 我想为ajax查询做一些类似的事情。更一般地说,我希望将两个错误面板集成在一起,但我无法找到一个好的方法 我想要的是一个弹出面板,页面上有错误,包括异步脚本中的错误 我已经有了一种制作弹出面板并用ajax请求的数据填充它们的方法 我曾想过在错误窗口中使用comet模式,并在php中注册一个出口处理程序,该处理程序发送一个http请求,以某种方式将错误传递给窗口,

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

我想为ajax查询做一些类似的事情。更一般地说,我希望将两个错误面板集成在一起,但我无法找到一个好的方法

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

我已经有了一种制作弹出面板并用ajax请求的数据填充它们的方法

我曾想过在错误窗口中使用comet模式,并在php中注册一个出口处理程序,该处理程序发送一个http请求,以某种方式将错误传递给窗口,但我不太确定如何执行此操作,以及如何将其全部绑定到php会话(例如,这样用户就不会看到其他人的错误)


你知道怎么做吗?有什么简单的事情我忽略了吗?

好吧,我最后做的事情,似乎效果很好:

我编写了一个php函数,用于收集页面上的所有错误,并输出一个带有class=“systemError”的特殊格式的div。它包含一个带有调用它的文件名的标题和一个包含错误列表的div。假设此函数名为“xx\u error\u get($filename)”

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

echo xx_error_get(__FILE__);
在返回的XML对象的末尾

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

然后,我在$(文档)中添加了几行。jQuery中的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});            
    });

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

@HalilÖzgür可能是可行的,但它在许多没有安装firebug的计算机上得到管理。当然我知道,我是必须修复它的人,但是如果用户有问题,我需要他们的错误消息,我不能确切地要求他们安装firebug。我应该补充一点:ajax调用最终需要清理。现在,脚本输出原始html,有时什么也不输出。我打算更改它,使其始终返回JSON对象。然后,ajaxSuccess处理程序将读取返回的JSON对象的错误部分,并将其添加到accordion中。不再有临时div和选择器。目前的脚本解决了主要问题。