Bonjour,
Je suis en train de réaliser un petit test d'importation XML vers un Datagrid, via un xhrGet.
Voici le code XML source :
Code xml : 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 <?xml version="1.0" encoding="UTF-8" ?> <vehicules> <vehicule> <numero>006680</numero> <marque>Renault</marque> <modele>Laguna</modele> <immatriculation>1231 FF 69</immatriculation> <date_immat></date_immat> </vehicule> <vehicule> <numero>000066</numero> <marque>Daewoo</marque> <modele>Lanos SE GPL</modele> <immatriculation>9999 ZZ 99</immatriculation> <date_immat>1999-11-01</date_immat> </vehicule> <vehicule> <numero>000180</numero> <marque>Daewoo</marque> <modele>Lanos SE GPL</modele> <immatriculation>7777 XX 99</immatriculation> <date_immat>1999-10-01</date_immat> </vehicule> <vehicule> <numero>001250</numero> <marque>Renault</marque> <modele>Clio</modele> <immatriculation>8897 BG 62</immatriculation> <date_immat>2006-11-01</date_immat> </vehicule> <vehicule> <numero>000280</numero> <marque>Daewoo</marque> <modele>Lanos SE GPL</modele> <immatriculation>8888 XX 99</immatriculation> <date_immat>2000-10-01</date_immat> </vehicule> <vehicule> <numero>0045877</numero> <marque>Renault</marque> <modele>Twingo</modele> <immatriculation>9780 HH 66</immatriculation> <date_immat>2005-11-01</date_immat> </vehicule> <vehicule> <numero>0410208</numero> <marque>Renault</marque> <modele>Megane</modele> <immatriculation>9978 PP 59</immatriculation> <date_immat>2005-11-01</date_immat> </vehicule> </vehicules>
Code PHP qui récupère le XML :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 header ("content-type: application/json"); $xml = SimpleXML_load_file("../vehicules.xml"); echo json_encode($xml);
Structure Json :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part {"vehicule":[{"numero":"006680","marque":"Renault","modele":"Laguna","immatriculation":"1231 FF 69","date_immat":{}},{"numero":"000066","marque":"Daewoo","modele":"Lanos SE GPL","immatriculation":"9999 ZZ 99","date_immat":"1999-11-01"},{"numero":"000180","marque":"Daewoo","modele":"Lanos SE GPL","immatriculation":"7777 XX 99","date_immat":"1999-10-01"},{"numero":"001250","marque":"Renault","modele":"Clio","immatriculation":"8897 BG 62","date_immat":"2006-11-01"},{"numero":"000280","marque":"Daewoo","modele":"Lanos SE GPL","immatriculation":"8888 XX 99","date_immat":"2000-10-01"},{"numero":"0045877","marque":"Renault","modele":"Twingo","immatriculation":"9780 HH 66","date_immat":"2005-11-01"},{"numero":"0410208","marque":"Renault","modele":"Megane","immatriculation":"9978 PP 59","date_immat":"2005-11-01"}]}
Dojo (CDN):
Donc coté PHP, j'ai rajouté le content-type (au cas où), ma structure Json semble correcte. L'entête de mon Grid apparait mais à la place des données, j'ai "Une erreur est survenue"... J'ai controlé dans la console de firebug ma structure Json et mon store. Mais je n'arrive pas à savoir ce qui me cause cette erreur. :/
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 <!DOCTYPE html> <html> <head> <title>Dojo</title> <link type="text/css" rel="stylesheet" href="claro.css"/> <style type="text/css"> @import "Grid.css"; @import "nihiloGrid.css"; .dojoxGrid table { margin: 0; } </style> <script>dojoConfig = {parseOnLoad: true}</script> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.8.1/dojo/dojo.js"></script> <script> dojo.require("dojox.grid.DataGrid"); dojo.require("dojo.data.ItemFileReadStore"); dojo.ready(function(){ var targetNode = dojo.byId("grid.debug"); var xhrArgs = { url: "../json/index.php", handleAs: "json", load: function(data, ioArgs){ //var newData = { // identifier: 'vehicules', // label: 'vehicules', // items: data // }; var dataStore = new dojo.data.ItemFileReadStore({data: data}); var gridStructure = [ [ { field: "numero", name: "Numéro", width: 5, }, { field: "marque", name: "Marque", width: 5, }, { field: "modele", name: "Modèle", width: 10, }, { field: "immatriculation", name: "Immatriculation", width: 15, }, { field: "date_immat", name: "Date immat", width: 10, } ] ]; console.log(data); console.log(dataStore); var grid = new dojox.grid.DataGrid({ id: "grid", jsid: "grid", store: dataStore, structure: gridStructure, style: 'width:761px;height:300px;' }, dojo.byId("grid.DataGrid")); grid.startup(); }, error: function(error){ targetNode.innerHTML = "An unexpected error occurred: " + error; } }; var deferred = dojo.xhrGet(xhrArgs); }); </script> </head> <body class='claro'> <h1>Dojo</h1> <div id="grid.DataGrid"></div> <div id="grid.debug"></div> </body> </html>
Merci d'avance.
Partager