如何将发布数据放入 CodeIgniter 中的数组中?帖子项目是数组

Posted

技术标签:

【中文标题】如何将发布数据放入 CodeIgniter 中的数组中?帖子项目是数组【英文标题】:How can I get post data into an array in CodeIgniter? post items are arrays 【发布时间】:2013-12-16 01:37:11 【问题描述】:

在 CodeIgniter 中,我试图从共享相同名称的表单输入中完成批量更新。但不知道如何将发布数据放入数组中。表单的简化视图如下:

<input name="id[]" value="1"/><input name = title[] value="some-title"/><input name     ="sort_order[]" value="1"/>

<input name="id[]" value="2"/><input name = title[] value="some-tuttle"/><input name="sort_order[]" value="2"/>

<input name="id[]" value="3"/><input name = title[] value="some-turtle"/><input name="sort_order[]" value="3"/>

在我的控制器中我现在有这个:

function set_sort_order()
    $data = array(
        array('id' => 1,'sort_order' => 14),
        array('id' => 2,'sort_order' => 5),
        array('id' => 3,'sort_order' => 9)
    );
    $this->db->update_batch('press_releases', $data, 'id');//works!
    $this->load->view(pr_listing);

该数组是硬连线的,可以在 input_batch 函数中进行测试,该函数正在工作。那么如何将帖子数据放入数组中呢?

【问题讨论】:

【参考方案1】:
$id = $this->input->post('id');
$sort_order = $this->input->post('sort_order');
$data = array();
foreach($id as $key=>$val)

  $data[] = array('id'=>$val,'sort_order'=>$sort_order[$key]);

【讨论】:

好的,@Naveed!【参考方案2】:

就本质而言,输入字段使用括号表示法(即fieldname[])命名的方式将导致 php 自动将这些字段中的数据填充到数组中。像这样简单地访问它们:

$ids = $_POST['id'];
$titles = $_POST['title'];
// etc.

您可以轻松地将它们组合成一个多维数组

$final_array = array();
$length = count($ids);
for($i = 0; $i < $length; $i++) 
    $final_array[$i]['id'] = $ids[$i];
    $final_array[$i]['title'] = $titles[$i];
    // etc.

var_dump($final_array);

注意:在我的示例中,我没有显示任何输入数据验证/清理步骤。在使用它之前,您可能想要验证输入数据是否存在、格式是否正确等。

【讨论】:

完全正确。只是把它放在 codegniter 格式:“$ids = $this->input->post('id');”我认为应该这样做。

以上是关于如何将发布数据放入 CodeIgniter 中的数组中?帖子项目是数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将ajax上的数据传递给codeigniter控制器

如何将数据集放入 R 包中

CodeIgniter将html放入flashdata

CodeIgniter:将值形成模型函数

AngularJS |如何将 Json 的数据发送到 Codeigniter 中的数据库

如何使用 Codeigniter 将 JQuery datepicker 中的值插入 MySQL 日期数据类型?