Ajax response is undefined or strange

I am trying to send an array in JS but I cannot get the response I want.

this is my PHP code:

$output = array('total'=>(float)$BHoras[1]'gastas'=>(float)$BHoras[2]); 
echo json_encode($output);

      

and this is my JS code:

function ProjectSelect()
{
    var proj = document.getElementById('ProjetosSelect').value;
    $.ajax({
        url: 'CRM files/TSread.php',
        type: "POST",
        data: ({ProjetosSelect: proj}),
        complete:function(data) 
        {
            var Horas = data.responseText;
            alert(Horas); // response -> {"total":146,"gastas":84.5}
            alert(Horas[3]); // response -> o
        }

    });
}

      

I only need "146" and "84.5".

I tried to do alert(Horas['total'])

, alert(Horas.total)

but let meundefined

+3


source to share


2 answers


Just specify dataType: "json"

and jQuery will parse the answer for you:



function ProjectSelect()
{
    var proj = $('#ProjetosSelect').val();
    $.ajax({
        url: 'CRM files/TSread.php',
        type: "POST",
        data: ({ProjetosSelect: proj}),
        dataType: "json",
        success: function(Horas) 
        {
            alert(Horas.total);
        }

    });
}

      

+4


source


On the server side, you can try flagging TracKer. And you can add a title too.



<?php
$output = array('total'=>(float)$BHoras[1], 'gastas'=>(float)$BHoras[2]);
header('Content-type: application/json');
echo json_encode($output);

      

0


source







All Articles