2016-08-04 19 views
0

私はこの種の問題についてはここで多くの記事を読んできましたが、この問題を解決するのに役立たなかったのはjqGridでした。私はここ..私が間違ってやっているjqGrid - JSONとして返されたデータですが、表示されません。

を得ることはありません、私のPHPファイル(それが逆転しています私はそれをDESCをソートしていますので、intentionnally注文)によって返されたデータです:

{"rows":{"1":{"id":"2","cell":["2","Italie","8",""]},"0":{"id":"1","cell":["1","France","8",""]}},"page":"1","total":1,"records":2} 

は、ここでの終わりです私はエコーの前にデータを設定するPHPファイルは、それをjson_encode:

// Préparation du tableau de retour 
$tableauGroupes = array(); 

// Si nous avons obtenu des résultats 
if (count($listeFiltree) > 0) { 
    foreach ($listeFiltree as $index => $groupe) { 
     // On récupère le tableau contenant toutes les traductions pour le nom du groupe 
     $tableauTraduction = (int)$groupe->getNomGroupe(); 
     // On récupère le nombre de sousGroupes dans le tableau de sousGroupes 
     $nombreEnfants = count($groupe->getTableauCentreSousGroupe()); 
     // Préparation des lignes à afficher 
     $tableauGroupes['rows'][$index]['id'] = $groupe->getGroupe(); 
     $tableauGroupes['rows'][$index]['cell'] = array($groupe->getGroupe(), $tableauTraduction[$langue], (string)$nombreEnfants, ""); 
    } 
} 

// Ajout des informations générales 
$tableauGroupes['page'] = $page; 
$tableauGroupes['total'] = ceil(count($tableauGroupes)/$limit); 
$tableauGroupes['records'] = count($tableauGroupes["rows"]); 


echo json_encode($tableauGroupes); 

は、ここで(うまく動作しているように使用される)jqGridテーブルの初期化です:

// Configuration du jqGrid des centres 
$("#listeGroupes").jqGrid({ 
    url: 'struct/<?=$rubrique?>/<?=$sous_rubrique?>/controleurs/tableauGroupes.php?sid=<? echo $sid;?>&sigle=<? echo $sigle;?>&langue=<? echo $langue;?>&nd='+new Date().getTime(), // Url de récupération des données 
    height: tailleListe, // Hauteur de la grille 
    ajaxGridOptions: {async: false}, // Surcharge des options ajax, lors des chargements de données 
    datatype: "json", // Type de données récupérées par la grille 
    colNames:["<?=THEAD_GROUPE?>","<?=THEAD_NOM_GROUPE?>","<?=THEAD_NB_SOUSGROUPE?>","<?=THEAD_ACTIONS?>"], 
    colModel:[ // Configuration des colonnes 
     {name:'groupe', index:'groupe', width:40, sortable:true, search:true}, 
     {name:'nomGroupe', index:'nomGroupe', width:100, sortable:true, search:true}, 
     {name:'nbSousGroupes', index:'nombreEnfants', width:40, sortable:true, search:true}, 
     {name:'actions', index:'actions', width:65, sortable:false, editable: false, search:false} 
    ], 
    rowNum:20, // Nombre de lignes par page 
    rowList: [10,20,30,50], // Nombre de lignes par page possibles 
    altclass:'odd', // Classe css des lignes alternantes (1/2) 
    altRows:true, // Alternance de lignes 
    pager: '#pagerlisteGroupes', // Identifiant du pager 
    sortname: 'groupe', // Colonne par laquelle on trie par défaut 
    sortorder: "asc", // Ordre de tri par défaut 
    viewrecords: true, // Affiche le nombre de résultats 
    autowidth: true, // Largeur automatique 
    imgpath: 'css/jqGrid/images', // Chemin d'accès aux images 
    pgbuttons: true, // Affiche les boutons du pager 
    pginput: true, // Affiche un champ de saisie dans le pager, pour rentrer un numéro de page 
    multiselect: true, // Permet de sélectionner simultanément plusieurs lignes 
    caption: "Liste des groupes", // Titre de la grille 
    //loadonce: true, 
    sortable: true, 
    ignoreCase:true, 
    loadComplete: function(){ 
    alert("ici"); 
     initGrilleGroupes(); 
    }, 
    onSelectRow: function(id, statut){ 
     selectionnerGroupe(id); 
    } 
}) 
// Ajout du pager 
.navGrid('#pagerlisteGroupes',{add:false,edit:false,del:false, search: false, searchtitle: "<? echo utf8_encode(html_entity_decode(TITLE_BOUTON_SEARCH));?>", refresh: false, refreshtitle: "<? echo utf8_encode(html_entity_decode(TITLE_BOUTON_REFRESH));?>"}, {}, {}, {}, { closeAfterSearch: true, drag: true, closeOnEscape: true }, {}) 
// Ajout de la barre de filtrage 
.filterToolbar({searchOnEnter: false}) 
// Ajout du bouton de création de centre 
.navButtonAdd('#pagerlisteGroupes',{ 
    caption: "", // Texte du bouton 
    title: "<?=TITLE_BOUTON_ADD_GROUPE;?>", // Titre tooltip du bouton 
    buttonicon: "ui-icon-plus", // Nom de l'icône du bouton 
    position: "first", // Position de l'icône dans le pager 
    onClickButton: function(){ 
     clicAjouterGroupe(); 
    } 
}); 

ご迷惑をおかけしますようお願い申し上げます; お気軽に

答えて

0

よろしくお願いいたします。説明はまだ本当に歓迎されていることです。 データを逆順にしないと、データが正常に動作しています。

{"rows":[{"id":"1","cell":["1","France","8",""]},{"id":"2","cell":["2","Italie","8",""]}],"page":"1","total":1,"records":2} 

これは正しく印刷されます。だから、cell[0]で私のアイテムをソートする必要がある場合、それは私のデータベースでフェッチしているオブジェクトのIDです。id[0]は同じものでなければならないのですか、まったく違うのですか?ところで

は、私はuasortを持つオブジェクトの私のPHPの配列をソートしています:

uasort($listeFiltree, "CentreGroupe::trier".ucfirst($sortOrder).ucfirst($sortId)); 

[OK]を、私は配列のキーが再割り当てされるようにusort()を使用する必要がありました。 idがjqGridにとって本当に重要であるように見えます。 これは将来誰かを助けることを願っています。 問題が解決しました。 平和

関連する問題