如何将发布数据放入 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 中的数组中?帖子项目是数组的主要内容,如果未能解决你的问题,请参考以下文章