如何让json在控制器中发布数据

时间:2012-08-29 15:46:41

标签: jquery ajax json

我正在开发CodeIgniter项目,而且我是ajax / jquery的新手。我正在使用fullCalendar。在我看来,我想发布一个事件的日期,然后将其发布到控制器。这是我的CalendarView.php

$(document).ready(function() {
    $('#calendar').fullCalendar({
        dayClick: function(date, allDay, jsEvent, view) {  
               add_event(date);
        },
        events: 'https://www.google.com/calendar/feeds/myLogin%40gmail.com/public/basic'
    });
});

//Ajax call
function add_event(date) { 
    $.ajax({
            type: 'POST',
            url: '<?php echo site_url()."/welcome/add_event/"; ?>',
                        data:{ eventsJson: JSON.stringify(date) },
                        dataType : "json",
            success: function (response) {
                alert(response);
            }
    });
}​

在我的控制器中,我就是这样做的:

$date= $this->input->post('data');

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

我对codelgnitor一无所知,但数据以对象形式到达,您可以将日期字符串检索为$ _POST [&#39;数据&#39;] [&#39; eventsJson&#39; ]

虽然我没有想到&#34; eventsJson&#34;是一个非常直观的名字,可能应该被称为&#34; date&#34;相反; - )

答案 1 :(得分:0)

在控制器中接收您要执行的eventsJSON

$eventsJSON = json_decode($this->input->post('eventsJSON'), TRUE);

现在$eventsJSON包含一个包含json数据的数组。但是,如果您只发回日期,则不需要将其作为JSON传回,加eventsJSON是一个错误的名称。在这种情况下,您只需更改ajax调用的数据部分,如:

data: 'date='+date,

在你的控制器中:

$date = $this->input->post('date');