我有一个字段,我提交到远程PHP脚本。该脚本发生错误。是否可以显示错误是什么以便附加它?
这就是我所拥有的:
<script>
<!--
var all="My information";
$.ajax({
type: "POST",
url: "myurl.php",
data: all,
success: function(html){
if(html == 'done'){
alert("working");
}else{
alert("something is wrong");
}
}
});
-->
</script>
我收到警告出错了因此我知道我的PHP脚本出错了。有没有办法显示这个错误?
答案 0 :(得分:1)
如果你想在myurl.php上返回错误。这样做:
示例:
success: function(server_response)
{
document.getElementById("resultdata").style.display = "block";
$('#resultdata').html(server_response).show();
}
在当前页面上进行一个名为resultdata的分区并设置display:none。它只会显示你是否有错误
您需要在myurl.php上使用if和else语句。
示例:
if($a == $b)
{
echo "sucess";
}
else
{
echo " failed";
}
答案 1 :(得分:0)
您可以更好地打印html
中的内容。如果显示错误设置为on,并且脚本中存在错误,它们将显示在响应中。
如果未显示错误,您可以添加以下代码以打开
上的错误显示error_reporting(E_ALL);
ini_set('display_errors', '1');
答案 2 :(得分:0)
在php.ini文件中设置合适的error_prepend_string
和error_append_string
。在我的情况下,我使用<div class="serverfault">
和</div>
。
然后,根据此字符串搜索结果以获取正则表达式,如下所示:/<div class="serverfault">([\d\D]+?)</div>/g
您现在可以显示发生的错误。
我更进了一步,并添加了“忽略”和“中止”按钮(或者在致命错误的情况下,仅“中止”)。如果按下“忽略”按钮,正则表达式将再次作为replace
运行以删除PHP错误消息,剩余的字符串将被视为AJAX响应。
答案 3 :(得分:0)
您可以通过更改php.ini文件来记录错误日志文件中的错误。
http://php.net/manual/en/errorfunc.configuration.php#ini.log-errors
答案 4 :(得分:0)
很难说明您提供的信息。
我通常做的是在处理之前验证输入。 如果有些错误,您可以返回带有客户错误消息的json编码答案,否则您将返回成功消息。
if(! validateMail($_POST['mail']){
echo json_encode(array('state' => 'error', 'message' => 'Invalid mail'));
} else {
echo json_encode(array('state' => 'ok'));
}
答案 5 :(得分:0)
如果您只是需要一种快速而又脏的方法来检查脚本的错误,请将if语句更改为:
if(html == 'done'){
alert("working");
}else{
alert(html);
alert("something is wrong");
}
虽然如果您希望向用户显示错误,那么您需要以html
以外的格式显示alert
。
答案 6 :(得分:0)
我的库phery,错误和异常,并与常规响应分离,他们都有自己的回调。你可以查看http://phery-php-ajax.net/demo.php中的错误
您也可以使用error_reporting
配置在代码中捕获仅AJAX错误,向下滚动到“为一些代码自定义错误报告”。同时单击“查看PHP代码”以查看它是如何完成的。
异常,就像PHP中的try / catch块一样,您将为客户端返回一个带有描述性异常的PheryResponse::factory()->exception()
。
通过这种方式,您可以将所有错误检查保留在SERVER中,并且客户端只需执行应该执行的操作,显示服务器状态。
$('a#click-me')
// Make the link ajaxified
.phery('make', 'remote-function')
// Bind the events to the element
.on({
'phery:exception': function(event, message){
alert(message);
},
'phery:json': function(event, data){
// deal with your json data
}
});
PHP方面将是
Phery::instance()->set(array(
'remote-function' => function($data){
$r = new PheryResponse;
try {
// fill your JSON data array
$r->json($json); // deliver the JSON
} catch (Exception $e) {
$r->exception($e->getMessage()); // Exception, send the error to the client
}
return $r;
}
))->process();