J'essaye d'envoyer un tableau à JS, mais je ne peux pas avoir la réponse que je veux.

C'est mon code PHP:

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

Et voici mon code 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
        }

    });
}

Je veux seulement le "146" et "84,5".

J'ai essayé de faire, alert(Horas['total']), alert(Horas.total), mais donnez-moi undefined

4
Tiago Rocha 14 juil. 2015 à 23:47

2 réponses

Meilleure réponse

Spécifiez simplement dataType: "json" et jQuery analysera la réponse pour vous:

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
dfsq 14 juil. 2015 à 20:55

Côté serveur, vous pouvez essayer la note TracKer. Et vous pouvez également ajouter un en-tête.

<?php
$output = array('total'=>(float)$BHoras[1], 'gastas'=>(float)$BHoras[2]);
header('Content-type: application/json');
echo json_encode($output);
1
koredalin 14 juil. 2015 à 21:57