Estou desenvolvendo uma aplicação web que visa possibilitar o acompanhamento de minhas finanças.
Nesta aplicação estou tentando vincular à um gráfico (ApexCharts) o resultado de alguns lançamentos presentes no meu banco de dados a partir de um intervalo de datas
A ideia é atualizar meu gráfico toda vez que um intervalo de data for selecionado
Minha dificuldade está em refletir o intervalo de data no eixo x do gráfico
Pergunta
odiegodias
Boa noite a todos,
Gostaria de uma ajuda de vocês
Estou desenvolvendo uma aplicação web que visa possibilitar o acompanhamento de minhas finanças.
Nesta aplicação estou tentando vincular à um gráfico (ApexCharts) o resultado de alguns lançamentos presentes no meu banco de dados a partir de um intervalo de datas
A ideia é atualizar meu gráfico toda vez que um intervalo de data for selecionado
Minha dificuldade está em refletir o intervalo de data no eixo x do gráfico
Meu Código:
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="js/apexcharts.min.js"></script>
<title>Dashboard - Minhas Economias</title>
</head>
<body>
------------ Formulário que recebe as datas de início e fim-----------------------------------
<?php
//Recebe os dados do formulário
$dados = filter_input_array(INPUT_POST, FILTER_DEFAULT);
?>
<form class="search-form d-flex align-items-center" method="POST" action="">
<?php
$data_inicio = "";
if (isset($dados['data_inicio'])) {
$data_inicio = $dados['data_inicio'];
}
?>
<div class="row mb-3">
<div class="col-sm-10">
<input type="date" name="data_inicio" value="<?php echo $data_inicio; ?>" class="form-control">
</div>
</div>
<?php
$data_final = "";
if (isset($dados['data_final'])) {
$data_final = $dados['data_final'];
}
?>
<div class="row mb-3">
<div class="col-sm-10">
<input type="date" name="data_final" value="<?php echo $data_final; ?>" class="form-control">
</div>
</div>
<div class="row mb-3">
<div class="col-sm-10">
<button type="submit" value="Pesquisar" name="PesqEntreData" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
---------------------------- Select que considera o Intervalo de dados ---------------------------------------------
<?php
$ligacao = mysqli_connect('localhost','root','','minhas_economias');
$ligacao-> set_charset("utf8");
$resultados = mysqli_query($ligacao, "SELECT * FROM parcelamento WHERE dt_vencimento BETWEEN :data_inicio AND :data_final");
-------------------------Variavel que recebe as datas de inicio e fim --------------------------------------------------------
$result_usuarios->bindParam(':data_inicio', $dados['data_inicio']);
$result_usuarios->bindParam(':data_final', $dados['data_final']);
$result_usuarios->execute();
-----------------------------Array p/ armanezar os dados do While ---------------------------------------
$nomes = [];
$quantidades = [];
While ($linha = mysqli_fetch_array($resultados, MYSQLI_ASSOC)){
$nomes[] = "'{$linha['dt_vencimento']}'";
}
$nomes = implode(',', $nomes);
$quantidades = implode(',', $quantidades);
?>
---- Script do Gráfico ----
<script>
let el = document.getElementById('chart');
let options = {
chart: {
type: 'line',
Width: 700,
height: 500
},
series: [{
name: 'sales',
data: [<?= $quantidades?>]
}],
xaxis: {
categories: [<?= $nomes?>]
},
title: {
text: "Teste"
}
}
let chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
</script>
O resultado que espero seria esse :
Se alguém puder me ajudar eu agradeço !
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.