CodeIgniter - 将多个数组发布到控制器

时间:2013-10-29 09:32:55

标签: php jquery ajax arrays codeigniter

我有一个动态生成的表单,允许用户输入新数据和编辑现有数据。提交表单时,它会整理输入值并根据它们是否为新值进行分组,前者由class="new-entry"表示。

因此该函数生成两个数组:updateDatainsertData。两个阵列的格式相似:

[
    0: {
        'id'    = 1,
        'value' = foo
    },
    1: {
        'id'    = 1,
        'value' = 'bar'
    },
    etc...
]

我将它们组合成一个新的数组对象,通过ajax发送到控制器:

var postData = {
    'update_data': updateData,
    'insert_data': insertData
};

然后在ajax调用中:

$.post(url, postData, function() { // some code });

但是,在控制器中,仅将print_r($this->input->post())print_r($_POST)作为测试返回Array()。即使$this->input->post('update_data')也没有返回任何内容。

如何在控制器中检索这些数组?

1 个答案:

答案 0 :(得分:1)

Codeigniter不是问题。在发送之前将数组转换为正确的JSON对象(stringify)。

使用

var postData = {
    'update_data': JSON.stringify(updateData),
    'insert_data': JSON.stringify(insertData)
};

$.post(url, postData, function() { // some code });

并且在你的控制器中,你可以通过

$update_data=json_decode($this->input->post('update_data'));
$insert_data=json_decode($this->input->post('insert_data'));