0

我有一个动态生成的表单,允许用户输入新数据和编辑现有数据。提交表单时,它会整理输入值并根据它们是否是新的进行分组,前者用 表示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 });

但是,在控制器中,doing print_r($this->input->post())or print_r($_POST)as a test 只会返回Array(). 甚至$this->input->post('update_data')一无所获。

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

4

1 回答 1

1

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

利用

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'));
于 2013-10-29T09:51:16.870 回答