如何在成功函数中使用返回的数组?

时间:2016-09-11 06:54:48

标签: javascript arrays ajax

当我尝试在视图页面上使用返回的数组数据时,它会打印undefined而不是数组值。请帮帮我。

我的控制器是:

function test(){
    $pro_id = $this->input->post('id',TRUE);
    //echo $pro_id;
    $cat_id = $this->input->post('cat',TRUE);

    $date1 = $this->input->post('dt',TRUE);
    $firstdate = date('Y-m-d', strtotime($date1));

    $lastdate = strtotime(date("Y-m-d", strtotime($firstdate)) . " +6 day");
    //echo $cat_id;
    $data = array();
    $this->load->model('inserttimemodel');
    $whr = $this->inserttimemodel->gettime($pro_id,$cat_id,$firstdate,$lastdate);
    $data['whr'] = $whr;  
    //print_r($data);  //working properly 
    echo json_encode($data);
    exit();                
}

JS:

$(document).ready(function(){
    $("#cat").change(function(){
        var catid = $(this).val();
        var id = $('#project option:selected').val();
        var dt = $('#period option:selected').val();
        $.ajax({
            url:"<?php echo base_url();?>/timesheet/test",
            data:{cat:catid,id:id,dt:dt},
            type:"POST",
            dataType: "json",
            success:function(data){
                document.getElementById("res").innerHTML = data[0];  
                document.getElementById("res1").innerHTML = data[1];  
            }
        });
    });   
});

2 个答案:

答案 0 :(得分:0)

您的服务器端结构很奇怪。然而。 您必须以javascript格式访问您的数据

data.whr[0].whr;
data.whr[1].whr;
....

使用

console.log(data);

在浏览器的F12按键Web开发工具中查看javascript调试控制台中数据的结构

答案 1 :(得分:-2)

您需要解码&#34;数据&#34;在使用&#34; JSON.parse&#34;之前在Javascript。