如何访问从控制器到ajax成功的阵列发送?

时间:2017-06-21 13:05:09

标签: php ajax codeigniter

因为我是codeigniter和ajax的新手,所以任何人都可以帮我。我从我的控制器向ajax函数发送数组但是我如何访问该数组元素。我在这里发布我的代码。 提前谢谢。

public function index()
{
    $Modules = $this->General_model->AllMoudules();
    $data['result'] = $this->printTree($Modules);
    $output = array(
    'html'=>$this->load->view("Add_user",$data),
    'data' => $data
    );
    echo json_encode($output);
}

和ajax功能

$("#user").on("click",function(){      
var url=static_url+'/User';
$.ajax({
        type:"POST",
        url:url,

        success:function(output)
        {
           $(output).each( function (index, o) {
           alert (o.data);

         });
        }

  });

});

4 个答案:

答案 0 :(得分:2)

控制器:

  public function index()
        {
            $Modules = $this->General_model->AllMoudules();
            $data['result'] = $this->printTree($Modules);
            $output = array(
            'html'=>$this->load->view("Add_user",$data,true),
            'data' => $data
            );
            echo json_encode($output);
        }

**Javascript:**

$("#user").on("click",function(){      
var url=static_url+'/User';
$.ajax({
        type:"POST",
        url:url,

        success:function(output)
        {
          console.log(output.data);
          console.log(output.html);

         });
        }

  });

试试这个。

答案 1 :(得分:1)

要在字符串中加载视图,您需要添加第三个参数以加载视图,如下所示:

$output = array(
    'html'=>$this->load->view("Add_user", $data, true),
    'data' => $data
);

要访问您的ajax响应,请尝试以下代码

success:function(output)
{
    console.log(output.html);
}

答案 2 :(得分:1)

使用array.length获取数组的长度。 然后循环

答案 3 :(得分:0)

你应该像这样使用ajax数据类型作为json

$.ajax({
        type:"POST",
        url:url,
        dataType: 'json',
        success: function (data) {
            alert(data.key);
        }
    });