0

我犯了一个非常简单的错误,但无法找到它。我使用 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 对象中检索该值然后将其存储在数据库中的方法

4

2 回答 2

2

试试这个,如果它工作。

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

convert the object array to array
$array =  (array) $json;
于 2012-11-10T17:41:28.263 回答
0

这看起来不对。

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

您确定您正在实际使用正确的控制器方法吗?你检查源代码了吗?

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

url: "<?php echo site_url('welcome/addEvent'); ?>",
于 2012-05-28T18:24:04.117 回答