Ajax响应未定义或奇怪

时间:2015-07-14 20:47:03

标签: javascript php arrays ajax json

我试图向JS发送数组,但我无法得到我想要的答案。

这是我的PHP代码:

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

这是我的JS代码:

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
        }

    });
}

我只想要" 146"和" 84.5"。

我试着做,alert(Horas['total'])alert(Horas.total),但是给我undefined

2 个答案:

答案 0 :(得分:4)

只需指定dataType: "json",jQuery就会为您解析响应:

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);
        }

    });
}

答案 1 :(得分:0)

在服务器端,您可以尝试使用TracKer注释。你也可以添加标题。

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