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
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
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>
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
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; } } }
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
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); }); }); });
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
Partager