Olá pessoal, Sou iniciante em JS e estou com uma dificuldade em pegar um array vindo do PHP pelo "echo json_encode" e receber ele dentro do JS para criar os dados dos graficos no Chart.js. Segue trecho o código do arquivo.php
$resLine = getChartLine('certidao');
$data = array('dia' => [] , 'qtd' => [], 'nome' => [], 'total' => []);
// Associando dados
while ($dados = mysqli_fetch_assoc($resLine)) {
array_push($data['dia'], $dados['dtchart']);
array_push($data['qtd'], $dados['entrada']);
}
$resPie = getChartPie('certidao');
while ($dados = mysqli_fetch_assoc($resPie)) {
array_push($data['nome'], $dados['nome']);
array_push($data['total'], $dados['total']);
}
echo json_encode($data);
A saida dele pelo ARQUIVO.PHP é dessa forma: "{"dia":["20 Mar 18","19 Mar 18","16 Mar 18","15 Mar 18","14 Mar 18","13 Mar 18","12 Mar 18","09 Mar 18","08 Mar 18","07 Mar 18"],"qtd":["19","14","22","21","13","20","19","20","21","15"],"nome":["Adriana","Fl\u00e1via","Marielle","Rahilla"],"total":["4","7","6","7"]}"
No JS eu recebo ele dessa forma, e o interessante que assim no meu wamp server ele funciona perfeitamente, carrega os dados que eu trouxe. Mas qndo jogo para a hospedagem, especificamente da Locaweb ele simplesmente não funciona. Segue o trecho do codigo que faço para receber os dados no JS:
$.ajax({
type: "POST",
url: "/admin/controllers/certchartsdata.php",
data:{data: []},
cache: false,
success: function(result){
try {
result = $.parseJSON(result);
var problemas = result['dia']
var votos = result['qtd']
var dataLine = {
labels : problemas,
datasets : [{
label: 'Entrada',
data: votos,
backgroundColor: ['rgba(255, 99, 132, 0.2)'],
borderColor: ['rgba(255, 99, 132, 1)'],
borderWidth: 1,
}]
}
var escrevente = result['nome']
var qtdcert = result['total']
var dataPie = {
labels: escrevente,
datasets: [{
data: qtdcert,
backgroundColor: ['#ff6384','#36a2eb','#cc65fe','#ffce56']
}]
}
var ctx = document.getElementById("certDiaChart");
window.myBar = new Chart(ctx, {
type: 'line',
data: dataLine,
responsive : true
});
var ctx = document.getElementById("certEscChart");
window.myPie = new Chart(ctx, {
type: 'doughnut',
data: dataPie,
responsive: true
});
} catch(err) {
console.log(err.message);
}
}, error: function(result) {
console.log(result);
}
});
O erro no console é: Unexpected token in JSON at position 0 Se alguem conseguir me ajudar, ficaria muito grato! Obrigado!