Javascript 关于使用Codeigniter或其他可能的解决方案处理多维阵列的建议?
我有一个用户列表和复选框,我需要得到每个复选框的id:选中,以及主题字段和消息字段,并传递给我的控制器。我能想到的唯一方法是抓取每个id并复制主题和消息字段,然后将多维数组传递给我的控制器。我的数组如下所示:Javascript 关于使用Codeigniter或其他可能的解决方案处理多维阵列的建议?,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我有一个用户列表和复选框,我需要得到每个复选框的id:选中,以及主题字段和消息字段,并传递给我的控制器。我能想到的唯一方法是抓取每个id并复制主题和消息字段,然后将多维数组传递给我的控制器。我的数组如下所示: [{id: "46", subject: "sample subject1", message: "test message1"}{id: "46", subject: "sample subject
[{id: "46", subject: "sample subject1", message: "test message1"}{id: "46", subject: "sample subject1", message: "test message1"}]
这似乎真的是多余的,因为我只需要用户ID列表和数组中消息和主题字段的1个副本,但不确定是否有更好的方法来完成这项工作。是否可以通过ajax将两个不同的阵列发送到我的codeigniter控制器?如果是,我如何在控制器中访问它们
下面是我收集ID和创建数组的代码示例。如果这是最好的方法,我仍然不确定如何处理控制器中的多维数组。通常我会使用$this->input->post('key')访问数组内容,但这不起作用:我想我需要首先在控制器中循环遍历数组,但不确定如何操作
这是我的密码:
$(document).on('click', '.send_btn', function(e) {
//get ids of selected users
var subject = 'test subject';
var message = 'test message';
var data = [];
$(':checkbox[name="people_checked[]"]:checked').each (function () {
data.push({
id: this.id,
subject: subject,
message: message
})
});
$.ajax({
url: "/message/send_message",
method: "POST",
success: function (data) {
console.log('Success');
}
})
}))
非常感谢您提供的任何帮助建议。如果您想干燥数组,请将其转换为根目录中包含
主题
和消息
属性的对象。然后可以将ids
属性作为数组提供。它看起来像这样:
[{id: "46", subject: "sample subject1", message: "test message1"}{id: "46", subject: "sample subject1", message: "test message1"}]
$(文档)。在('单击','上。发送功能(e){
风险值数据={
主题:'测试主题',
消息:“测试消息”,
id:$(':checkbox[name=“people\u checked[]”:checked').map((i,el)=>el.id).get()
};
$.ajax({
url:“/message/send_message”,
方法:“张贴”,
data:data,//注意这是添加的,您没有发送原始的正文
成功:功能(数据){
console.log('Success');
}
})
});
产出将是:
{
subject: 'test subject',
message: 'test message',
ids: [ 123, 987 ]
}
显然,您需要修改/message/send_message
端点以使用该格式的请求主体