Bonjour,
bon apparemment d'après mes recherches ... Ma requête AJAX,, récupère bien le json, mais n'arrive pas à le transformer. Le problème vient bien de la ligne
j'ai le message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part var jsonData = $.parseJSON(data);Pourtant ma réponse me renvoie bien un objet jsonSyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
j'ai bien dans ma console :
et dans la réponse :
Je comprends pas ce qui gène.
Ma requête Ajax:
La partie de mon controller qui monte la réponse en JSON :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 /** * Requête Ajax : Permettant le controle du nom de l'automate dans l'input * de façon interactive */ function checkNameAuto() { // Recupération de l'input id=nom var inputName = document.getElementById('nom'); // On attend que l'input perde le focus inputName.onblur = function (e) { //on récupère la valeur de l'input var name = inputName.value; //console.log(name); //$('#message-text').html(""); //on effectue la requête ajax $.ajax({ type: "GET", url: "/administration/table/automates/form/checkName", data: { nom: name }, datatype: "json", success: function (data) { messageDisplay(data); }, error: function (data) { messageDisplay(data); } }) function messageDisplay(data) { console.log(data); var jsonData = $.parseJSON(data); //console.log(jsonData); if(jsonData.etat == 'ok') { $('#messages-card').removeClass("red").addClass("green"); } else { $('#messages-card').removeClass("green").addClass("red"); } $('#message').html(jsonData); } } }
Code PHP : 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
32
33
34
35
36 //si l'automate existe déjà if ($double !== false) { //afficher message d'erreur $message = array(); $message["etat"] = "ko"; $message["retour"] = "Vous ne pouvez pas utiliser ce nom - Nom déjà utilisé "; $this->logger->error($message["retour"]); $resultat = json_encode($message); //var_dump($message); $statusCode = 409; $response->getBody()->write($resultat); return $response ->withHeader("Content-Type", "application/json") ->withStatus($statusCode); } //afficher message d'erreur $message = array(); $message["etat"] = "ok"; $message["retour"] = "Vous pouvez utiliser ce nom - Nom non utilisé "; $this->logger->error($message["retour"]); $resultat = json_encode($message); $statusCode= 200; $response->getBody()->write($resultat); return $response ->withHeader("Content-Type", "application/json") ->withStatus($statusCode);
Partager