Service JSON->encode de dojox grid
Bonjour ! Encore un problème :oops:
J'extraie des données de ma superbe base MySQL...
Le résultat est un tableau associatif :
Code:
$resultats = $selectSQL->fetchAll(PDO::FETCH_ASSOC);
Puis j'utilise la classe dojox/grid/compat/tests/support/json.php pour l'encoder en JSON. Cela me sert à alimenter des Store de Grid (et très prochainement j'espère des Stores de Chart).
Je l'utilise comme suit (dans PHP) :
Code:
1 2 3
| include_once POSITION.'inclus/js/dojox/grid/compat/tests/support/json.php';
$json = new Services_JSON();
$data = $json->encode(array('identifier'=>$identifier,'label'=>$label, 'items'=>$resultats)); |
Le problème que j'ai, c'est la façon dont il me renvoie les valeurs numériques : il les met entre guillemets, cela est donc traité comme du texte, et par exemple les tris ne sont pas bons dans une Grid (dans l'ordre, ça donne : 13, 2, 205, 4, ...)
Exemple de la chaîne retournée :
Code:
1 2 3 4 5 6
| {"identifier":"item_ean",
"label":"Liste valoris\u00e9e des articles achet\u00e9s",
"items":[{"item_ean":"3179732324818","item_nom":"Eau de perrier Bleue","prixmoyen":"1.3000","datedernierachat":"2009-09-08","nbachetes":"1","totalachat":"1.30"},
{"item_ean":"3487400000392","item_nom":"Bl\u00e9 dur pr\u00e9cuit Ebly","prixmoyen":"2.5000","datedernierachat":"2009-09-10","nbachetes":"1","totalachat":"2.50"},
{"item_ean":"3564700005835","item_nom":"Lait demi-\u00e9cr\u00e9m\u00e9 D\u00e9lisse","prixmoyen":"4.67","datedernierachat":"2009-09-12","nbachetes":"6","totalachat":"4.02"},
{"item_ean":"356470001835","item_nom":"Lait demi-\u00e9cr\u00e9m\u00e9 D\u00e9lisse","prixmoyen":"200.67","datedernierachat":"2009-09-12","nbachetes":"200","totalachat":"25.02"}, |
Si j'écris, pour tester, moi même la chaîne en enlevant toutes les guillemets autour des chiffres, les données sont bien transmises en format numérique à la Grid, et les tris fonctionnent !
Savez-vous comment utiliser ce service_JSON, pour qu'il encode les numériques sans guillemets ? Dois-je m'orienter vers une autre solution ?
Merci beaucoup pour votre aide.
Laurent