私はこの種の問題についてはここで多くの記事を読んできましたが、この問題を解決するのに役立たなかったのは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();
}
});
ご迷惑をおかけしますようお願い申し上げます; お気軽に