将数据从Ajax传递到codeigniter 3

时间:2016-09-30 02:46:36

标签: php ajax codeigniter

我在这里看了一些帖子,并尝试将数据从api调用传递给codeigniter 3上的控制器,我需要在根页面上显示这些数据,所以我不知道该怎么做!

$.ajax({
    url: ' URL ',
    dataType: 'json',
    type: 'post',
    contentType: 'application/json',
    data: JSON.stringify( {
      "var1": "var1",
      "var2": "var2",
      "var3": "var3",
      "var4": "var4"
    } ),
    processData: false,
    success: function( data ){
        $.ajax({
            url: window.location.href,  <--- this is ok for root page? the controller is App.php and the function its Index()...
            dataType: 'json',
            type: 'post',
            contentType: 'application/json',
            data: {"data":data},
            processData: false,
            success: function( data ){
              console.log('pass');
            }
        });
    },
    error: function( jqXhr, textStatus, errorThrown ){
        console.log( errorThrown );
    }
});

然后在我的控制器

$data['data'] = $this->input->post('data');
$this->load->view('app', $data);

并在视图

<?=$data?>

但没有,它没有打印任何内容并且没有在控制台中记录任何内容

1 个答案:

答案 0 :(得分:0)

首先将所有数据转换为数组,然后使用$data = json_encode($array); 。 要以json格式呈现数据,您必须在$ this-&gt;输出对象中发送内容类型。

$this->output
    ->set_content_type('application/json')
    ->set_output(json_encode(array('foo' => 'bar'));

现在控制器中的方法将开始渲染你的json数据。