Gérer les erreurs AJAX provenant d'une classe PHP
Bonjour,
Je suis en train de m'entraîner sur AJAX et plus particulièrement sur la gestion des erreurs.
J'essaye de faire remonter une erreur détectée par PHP (et provoquée) à l'AJAX
Voici mon code :
index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<meta charset="UTF-8">
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="javascript.js" type="text/javascript"></script>
<title></title>
</head>
<body>
<button id='comparaison' name='comparaison'>Comparaison</button>
<?php
require_once 'functions.php';
$functions = new functions(10);
if(isset($_POST['compare']) && $_POST['compare'] == 'ok')
{
$functions->compare(15);
}
else
{
echo 'Nan';
}
?>
</body>
</html> |
functions.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<?php
class functions
{
public function __construct($init)
{
$this->init = $init;
}
public function compare($nombre)
{
try
{
if($this->init < $nombre)
{
throw new Exception('Erreur');
die();
}
}
catch(Exception $ex)
{
echo $ex;
}
}
} |
javascript.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
$(function()
{
$('#comparaison').click(function()
{
$.post('index.php',
{
compare: 'ok'
},
function(data, status)
{
alert("Data: " + data + "\nStatus: " + status);
});
});
}); |
Selon la fonction compare de ma classe PHP, tout valeur entrée supérieure à la valeur de la variable en constructeur doit retourner une erreur, je n'ai fais cette classe juste pour m'entraîner
dans l'alert dans mon javascript, l'erreur PHP est bien retournée : "exception 'Exception' with message 'Erreur' in C:\wamp\www\Fonctions\functions.php:16
Stack trace:
#0 C:\wamp\www\Fonctions\index.php(22): functions->compare(15)
#1 {main}"
Cependant, le status reste à success, et celà peut importe si PHP me retourne une erreur ou non
Comment corriger cela ?
Merci