Filtro não funciona por causa de problema de acentuação do retorno, o que fazer?
Bom dia galera do imasters.
Eu estou trabalhando com datatables e php, de forma server side.
Venho fazendo filtros personalizados com ele, tudo funcionando ok, com uma salve exceção, as palavras que tem acentuação, não funciona no filtro.
Vamos dizer, que eu seleciono a seguinte empresa: XPTO serviços
Quando for fazer o filtro do "Gabriela e Ana informática" ele vai dizer que a tabela está vazia. Não entendendo o erro, reparei que isso só acontecia com palavras que tinham acentuação, então eu olhei como estava o retorno. Foi constatado que o retorno do datatable, estava vindo com algo do tipo
["XPTO servi\u00e7os","Sociedade Unificada de Ensino Augusto Motta-UNISUAM, BR\r\n","EDUCATIONAL\r\n","MF\r\n","16\r\n","01\/06\/2016","25\/03\/2017","25\/03\/2017","2\r\n","1000\r\n","<a href='detail-license.php?id=14'><button class='btn btn-success'><i class='fa fa-list'><\/i> Detalhes<\/button><\/a>","<a href='download.php?id=14'><button class='btn btn-success'><i class='fa fa-download'><\/i> Download<\/button><\/a>"],["XPTO servi\u00e7os","Moinho Romariz Ind. Com. Imp. de Prod. Alimenticios LMDA, BR","COMMERCIAL","MF","15","08\/09\/2015","08\/09\/2016","08\/09\/2016","2","100","<a href='detail-license.php?id=20'><button class='btn btn-success'><i class='fa fa-list'><\/i> Detalhes<\/button><\/a>","<a href='download.php?id=20'><button class='btn btn-success'><i class='fa fa-download'><\/i> Download<\/button><\/a>"],["XPTO servi\u00e7os","ibsolution - austral - cedserj - cond bnds","COMMERCIAL","NG","16","29\/06\/2016","05\/05\/2017","05\/05\/2017","2","150","<a href='detail-license.php?id=23'><button class='btn btn-success'><i class='fa fa-list'><\/i> Detalhes<\/button><\/a>","<a href='download.php?id=23'><button class='btn btn-success'><i class='fa fa-download'><\/i> Download<\/button><\/a>"]
Esse "servi\u00e7os" que está me jogando pro buraco.
//codigo que faz o retorno do json
$data = array();
while( $row=mysql_fetch_array($rResult) ) { // preparing an array
$nestedData=array();
$nestedData[] = utf8_encode($row["razao_social"]);
$nestedData[] = utf8_encode($row["organization_name"]);
$nestedData[] = $row["organization_type"];
$nestedData[] = $row["edition"];
$nestedData[] = $row["licensed_version"];
$nestedData[] = date("d/m/Y",strtotime($row["issued_date"]));
$nestedData[] = date("d/m/Y",strtotime($row["support_expiry_date"]));
$nestedData[] = date("d/m/Y",strtotime($row["updates_expiry_date"]));
$nestedData[] = $row["advanced_clients_licensed"];
$nestedData[] = $row["users_licensed"];
$nestedData[] = "<a href='detail-license.php?id=".$row['id_license']."'><button class='btn btn-success'><i class='fa fa-list'></i> Detalhes</button></a>";
$nestedData[] = "<a href='download.php?id=".$row['id_license']."'><button class='btn btn-success'><i class='fa fa-download'></i> Download</button></a>";
$data[] = $nestedData;
}
$output = array(
"draw" => intval($_GET['draw']),
"recordsTotal" => $iTotal,
"recordsFiltered" => $iFilteredTotal,
"data" => $data
);
echo json_encode( $output );
//codigo que pega as informações do formulario e envia para o php
$('#btnFiltrar').on( 'click', function () {
var dados = new Array();
$('#frmReportLicense').find(":text:visible,:checkbox:checked,select:visible,input:checked").each(function(v) {
dados[v] = $(this).val();
});
dataTable.columns().search(dados).draw();
console.log(dados);
} );

Discussão (9)
Carregando comentários...