json对象发布到codeigniter

时间:2012-05-28 11:37:56

标签: ajax codeigniter json

我犯了一个非常简单的错误但无法找到它。 我使用AJAX将JSON对象发布到CodeIgniter控制器,但无法在控制器函数中检索此值。 我的代码是

AJAX代码:

 $.ajax({
    type: "POST",
    contentType: "application/json",
    data: "{eventdata:" + JSON.stringify(eventToSave) + "}",
    url: "<?php echo $base?>/index.php/welcome/addEvent",
    dataType: "json",
    success: function (data) {      
        alert(data);        
        $('#calendar').fullCalendar('renderEvent', event, true);
        $('.qtip').remove();
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        debugger;
    }
});

在控制台中,JSON对象以下列格式显示:

{
    eventdata: {
        "EventID": 170,
        "StartDate": "Thu May 10 2012 00:00:00 GMT+0530 (India Standard Time)",
        "EndDate": "Thu May 10 2012 00:00:00 GMT+0530 (India Standard Time)",
        "EventName": "sdsfddsf"
    }
} 

CodeIgniter addEvent函数:

$json_output[]=(array)json_decode($this->input->post());        
print_r($json_output);

我也尝试了各种其他选项但是无法从json对象中获取我需要存储在数据库中的值。请告诉我一些从json对象中检索此值然后将其存储在db中的方法

2 个答案:

答案 0 :(得分:2)

如果有效,请试试这个。

$json = file_get_contents('php://input');
$json = stripslashes($json);
$json = json_decode($json);

convert the object array to array
$array =  (array) $json;

答案 1 :(得分:0)

这看起来不对。

 url: "<?php echo $base?>/index.php/welcome/addEvent",

你确定你正在按照正确的控制器方法进行操作吗?你检查过源代码了吗?

尝试做这样的事情(使用URL Helper):

url: "<?php echo site_url('welcome/addEvent'); ?>",