bonjour,
j'ai créé une liste avec une pagination.
je me sers de Json.
j'ai bien un nombre de pages et le nombre d'enregistrements qui s'affichent.
mais je n'ai aucune ligne qui s'affiche !! aucune erreur avec firebug.

le fichier où il y a mon code extjs:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<script type="text/javascript">
Ext.onReady(function(){

  Ext.BLANK_IMAGE_URL = 'ext-2.0/resources/images/default/s.gif';

  var tabs = new Ext.TabPanel({
        renderTo: 'menu_contrat',
        activeTab: 0,
        frame:true,
        defaults:{autoHeight: true},
        items:[
            {contentEl:'contenu', title: 'Contrats'},
        ]
    });

  Ext.QuickTips.init();
    
  var xg = Ext.grid;
  var myData = <?php echo $result; ?>;

  // create the data store
  var store = new Ext.data.SimpleStore({
      fields: [
         {name: 'nom_structure'},
         {name: 'derniere_echeance', type: 'date', dateFormat: 'Y-m-d'},
         {name: 'fin_abonnement', type: 'date', dateFormat: 'Y-m-d'},
         {name: 'abonnement'},
         {name: 'prochaine_echeance', type: 'date', dateFormat: 'Y-m-d'},
         {name: 'etat_contrat'},
         {name: 'recueils'},
         {name: 'normes'},
         {name: 'num_classeur'},
         {name: 'edit'}
      ]
  });  
    
  var ds = new Ext.data.Store({    
        proxy: new Ext.data.MemoryProxy(myData),
        
        reader: new Ext.data.JsonReader({
          root: 'contrats',
          totalProperty: 'total',
          id: 'nom_structure'
        },[
            {name: 'nom_structure', mapping: 'nom_structure'},
            {name: 'derniere_echeance', mapping: 'derniere_echeance', type: 'date', dateFormat: 'd-m-Y'},
            {name: 'fin_abonnement', type: 'date', dateFormat: 'd-m-Y', mapping: 'fin_abonnement'},
            {name: 'abonnement', mapping: 'abonnement'},
            {name: 'prochaine_echeance', type: 'date', dateFormat: 'd-m-Y', mapping: 'prochaine_echeance'},
            {name: 'etat_contrat',  mapping: 'etat_contrat'},
            {name: 'recueils',  mapping: 'recueils'},
            {name: 'normes',  mapping: 'normes'},
            {name: 'num_classeur',  mapping:'num_classeur'},
            {name: 'edit', mapping:"edit"}
          ]
        ),
        remoteSort: true
  });  
    
    var sm = new xg.CheckboxSelectionModel();
    
    var grid = new xg.GridPanel({
        store: store,
        ds: ds,
        stripeRows: true,
        cm: new xg.ColumnModel([
            sm,
            {header: "Nom de la stucture",  sortable: true, dataIndex: 'nom_structure'},
            {header: "Dernière échéance",  sortable: true, renderer: Ext.util.Format.dateRenderer('d/m/Y'), dataIndex: 'derniere_echeance'},
            {header: "Fin du contrat",   sortable: true, renderer: Ext.util.Format.dateRenderer('d/m/Y'), dataIndex: 'fin_abonnement'},
            {header: "Abonnement", sortable: true, dataIndex: 'abonnement'},
            {header: "Prochaine échéance",  sortable: true, renderer: Ext.util.Format.dateRenderer('d/m/Y'), dataIndex: 'prochaine_echeance'},
            {header: "Etat",  sortable: true, dataIndex: 'etat_contrat'},
            {header: "Recueils",  sortable: true, dataIndex: 'recueils'},
            {header: "Normes",  sortable: true, dataIndex: 'normes'},
            {header: "N°Classeur",  sortable:true, dataIndex:'num_classeur'},
            {header: "Voir/Modifier",  sortable: true, dataIndex: 'edit'}
        ]),
        sm: sm,
        frame:true,
        title:'Liste des clients',
        defaults:{autoHeight: true},
        iconCls:'icon-grid',
        renderTo: "contrats",
        bbar: new Ext.PagingToolbar({
            store: ds,
            pageSize: 25,
            displayInfo: true,
            displayMsg: 'Clients : {0} à {1} sur {2}',
            emptyMsg: "Aucun client"
          })
    });
 
    grid.render('contrats');
    ds.load({params:{start:0, limit:25}});  
    
});
</script>
un bout de la valeur de $result :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
{"total":"389","contrats":
[{"nom_structure":"bidule","derniere_echeance":"","fin_abonnement":"","abonnement":"","prochaine_echeance":"",
"etat_contrat":"","recueils":"","normes":"","num_classeur":"","edit":""}
,{"nom_structure":"chouette","derniere_echeance":"","fin_abonnement":"","abonnement":"","prochaine_echeance":"",
"etat_contrat":"","recueils":"","normes":"","num_classeur":"","edit":""}
et un bout de la page html :
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
 
<div id="menu_contrat">
  <div id="contenu">
    <?php foreach($tab_alphabet as $lettre) {
        echo link_to($lettre, "contrats/list?lettre=".$lettre);
        
    }
          
    ?>
    <div id="contrats">
    </div>
    <div id="actions">
    </div>
 
  </div>
 
</div>
franchement si vous pouviez m'aider à trouver la solution, ça m'arrangerait bien, ça fait depuis ce matin que je bloque sur le problème

voilà, merci d'avance et bonne soirée

Edit: je n'ai toujours pas trouvé de solution. y a t il un moyen de débuguer plus rapidement ?