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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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