I'm with a grid on my site. I use the jqGrid. What is happening is that when the data back the request, they are formatted the right way because the jqGrid itself enters LoadComplete
method, but it does not load the data in the Grid.
Javascript is JqGrid:
$(document).ready(function () {
$("#jqGrid").jqGrid({
url: 'adm/controller/medico.php?acao=listarMedico',
mtype: "POST",
styleUI : 'Bootstrap',
datatype: "json",
colModel: [
{ label: 'id', name: 'idMedico', key: true, width: 75, hidden:true },
{ label: 'Nome', name: 'nomeMedico', width: 75 },
{ label: 'CRM', name: 'crmMedico', width: 150 },
{ label: 'Especialidades', name: 'especialidadesMedico', width: 150 },
{ label: 'Endereço', name: 'enderecoMedico', width: 150 },
{ label: 'Telefone', name: 'telefoneMedico', width: 150 }
],
viewrecords: true,
rowNum: 20,
rowList: [20, 40, 100],
//height: "auto",
height: 400,
emptyrecords: "Nenhum médico com o filtro selecionado",
loadtext: "Buscando e carregando...",
rowNum: 20,
pager: "#jqGridPager",
caption: "Médicos Conveniados",
loadComplete: function(data){
console.log('sucesso');
console.log(data);
},
loadError: function (xhr,st,err) {
console.log('HTTP status code: ' + xhr.status + '\n' +
'textStatus: ' + st + '\n' +
'errorThrown: ' + err);
console.log('HTTP message body (jqXHR.responseText): ' + '\n' + xhr.responseText);
}
});
});
The return of PHP is this JSON:
{"total":1,"page":1,"records":20,"rows":{"1":{"id":"1","cell":{"idMedico":"1","nomeMedico":"dsda","crmMedico"
:"jknjk","especialidadesMedico":null,"enderecoMedico":" , - - ","telefoneMedico":"() "}},"2":{"id"
:"2","cell":{"idMedico":"2","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:" , - - ","telefoneMedico":"() "}},"3":{"id":"3","cell":{"idMedico":"3","nomeMedico":"Henrique","crmMedico"
:"CRM","especialidadesMedico":null,"enderecoMedico":" , - - ","telefoneMedico":"() "}},"4":{"id":"4"
,"cell":{"idMedico":"4","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:" , - - ","telefoneMedico":"() "}},"5":{"id":"5","cell":{"idMedico":"5","nomeMedico":"Henrique","crmMedico"
:"CRM","especialidadesMedico":null,"enderecoMedico":"Endere\u00e7o , Bairro - \u00c1gua Doce do Norte
- ES","telefoneMedico":"() "}},"6":{"id":"5","cell":{"idMedico":"5","nomeMedico":"Henrique","crmMedico"
:"CRM","especialidadesMedico":null,"enderecoMedico":"Endere\u00e7o , Bairro - \u00c1gua Doce do Norte
- ES","telefoneMedico":"() "}},"7":{"id":"5","cell":{"idMedico":"5","nomeMedico":"Henrique","crmMedico"
:"CRM","especialidadesMedico":null,"enderecoMedico":"Endereco , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico"
:"() "}},"8":{"id":"5","cell":{"idMedico":"5","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico"
:null,"enderecoMedico":"Endereco , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"() "}},"9":{"id"
:"6","cell":{"idMedico":"6","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:" , - - ","telefoneMedico":"() "}},"10":{"id":"7","cell":{"idMedico":"7","nomeMedico":"Henrique","crmMedico"
:"CRM","especialidadesMedico":null,"enderecoMedico":" , - - ","telefoneMedico":"() "}},"11":{"id":"8"
,"cell":{"idMedico":"8","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"() "}},"12":{"id":"8","cell":
{"idMedico":"8","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"() "}},"13":{"id":"9","cell":
{"idMedico":"9","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"() "}},"14":{"id":"9","cell":
{"idMedico":"9","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endereco , Bairro - \u00c1gua Doce do Norte - ES","telefoneMedico":"() "}},"15":{"id":"10","cell":
{"idMedico":"10","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"(81) 98125-8886"}},"16":{"id"
:"10","cell":{"idMedico":"10","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endereco , Bairro - \u00c1gua Doce do Norte - ES","telefoneMedico":"() "}},"17":{"id":"11","cell":
{"idMedico":"11","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"(81) 98200-5300"}},"18":{"id"
:"11","cell":{"idMedico":"11","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"(81) 98125-8886"}},"19":{"id"
:"11","cell":{"idMedico":"11","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endereco , Bairro - \u00c1gua Doce do Norte - ES","telefoneMedico":"() "}},"20":{"id":"12","cell":
{"idMedico":"12","nomeMedico":"Henrique","crmMedico":"CRM","especialidadesMedico":null,"enderecoMedico"
:"Endere\u00e7o , Bairro - Afonso Cl\u00e1udio - ES","telefoneMedico":"(81) 98200-5300"}}}}
What the problem, someone can help me?
The data which you generates seems to have wrong format. The value of "rows"
property looks like
{
"1":{"id":"1","cell":{"idMedico":"1",...}},
"2":{"id":"2","cell":{"idMedico":"2",...}},
...
"20":{"id":"12","cell":{"idMedico":"12",...}}
}
instead of
[
{"id":"1","cell":["1",...]},
{"id":"2","cell":["2",...}},
...
{"id":"12","cell":["12"...]}
]
or better
[
{"idMedico":"1",...},
{"idMedico":"2",...},
...
{"idMedico":"12",...}
]
You should change the format of "rows"
property of returned data.
I remind you that []
represent JSON serialized array and {}
represent JSON serialized object.