我有一个动态生成的表单,允许用户输入新数据和编辑现有数据。提交表单时,它会整理输入值并根据它们是否为新值进行分组,前者由class="new-entry"
表示。
因此该函数生成两个数组:updateData
和insertData
。两个阵列的格式相似:
[
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')
也没有返回任何内容。
如何在控制器中检索这些数组?
答案 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'));