Skip to content
Advertisement

array javascript loop wrong

it´s a simple question but i can´t solve. Always when i tray to do loopp in my array return index 0

<script>
            let status = [];
            let number = [];
            let llamadas = [];
            
            llamadas = {!! json_encode($estados) !!}
            
            for(var i=0; i<llamadas.length; i++){
                console.log(llamadas[i][i]);

                status.push(llamadas[i][i].desc);
                number.push(llamadas[i][i].total)
            }

llamadas its my varaible from controller, i´m working with laravel 5.6 how backend

llamadas contain this:

(7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
0: {id_teleoperadora: 9, desc: "APLAZADA", total: 40}
1: {id_teleoperadora: 9, desc: "AUSENTE", total: 132}
2: {id_teleoperadora: 9, desc: "CONFIRMADA", total: 218}
3: {id_teleoperadora: 9, desc: "NUEVA", total: 101}
4: {id_teleoperadora: 9, desc: "NULA", total: 217}
5: {id_teleoperadora: 9, desc: "PENDIENTE", total: 45}
6: {id_teleoperadora: 9, desc: "VENTA", total: 1}
length: 7
__proto__: Array(0)

and his original content content wihtout for

[Array(7)]
0: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
length: 1
__proto__: Array(0)

never i show one array for this way

in push i need extract desc for to build to stadictics with chart.js. now i can return only one state. I don´t know that i´m doing wrong. when i have status i will continue with number but now only i can return one result status "aplazada" i don´t know if i´m doing well my pushs

thanks for help

Advertisement

Answer

In my controller i has error, should be:

public function getStateCallCommercial($operadora)
    {

        $callSend = array();

        array_push($callSend, DB::select(
            DB::raw("SELECT L.id_teleoperadora, CE.desc, COUNT(C.id) as total
                        FROM LLAMADA L 
                        JOIN CITA C ON L.ID = C.id_llamada 
                        JOIN CITA_ESTADO CE ON C.id_estado = CE.id 
                        WHERE L.id_teleoperadora  = $operadora
                        AND L.id_estado = 5
                        GROUP BY L.id_teleoperadora, CE.desc
                        ORDER BY CE.desc;" ) )
        );
        

        return view('admin.estadisticas.index')->with('estados', $callSend[0]);

this send my data to view. and in my blade:

<script>
            let status = [];
            let number = [];
            let llamadas = [];
            
            llamadas = {!! json_encode($estados) !!};
            
            for(var i=0; i<llamadas.length; i++){
                status.push(llamadas[i].desc);
                number.push(llamadas[i].total)
            }            
 
var ctx = document.getElementById('myChart').getContext('2d');
            var myChart = new Chart(ctx, {
                type: 'bar',
                data: {
                    labels: status,
                    datasets: [{
                        label: 'Estado de las llamadas pasadas a comerciales',
                        data: number,
                        backgroundColor: [
                            'rgba(255, 99, 132, 0.2)',
                            'rgba(54, 162, 235, 0.2)',
                            'rgba(255, 206, 86, 0.2)',
                            'rgba(75, 192, 192, 0.2)',
                            'rgba(153, 102, 255, 0.2)',
                            'rgba(255, 159, 64, 0.2)'
                        ],
                        borderColor: [
                            'rgba(255, 99, 132, 1)',
                            'rgba(54, 162, 235, 1)',
                            'rgba(255, 206, 86, 1)',
                            'rgba(75, 192, 192, 1)',
                            'rgba(153, 102, 255, 1)',
                            'rgba(255, 159, 64, 1)'
                        ],
                        borderWidth: 1
                    }]
                },
                options: {
                    scales: {
                        y: {
                            beginAtZero: true
                        }
                    }
                }
            });

with this i build my graphic.

Thanks for all response and help

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement