从复选框传递数组并将多行插入数据库 CodeIgniter



这是我的观点:

<?php foreach ($list_peserta as $show): ?>
<label>
<input type="checkbox" name="undangan[]" value="<?php echo $show->email ?>" />
<?php echo $show->nama ?></label>
<?php endforeach; ?>
</div>
</div>
<div class="form-actions">
<input type="submit" value="Kirim" class="btn btn-info">
</div>
<?php echo form_close(); ?>

我的控制器:

$data   =   array();
$count  =   count($this->input->get_post['undangan']);
for ($i = 0; $i <= $count ; $i++) {
$data[] =   array(  
'id_acara'      =>  $this->input->post['id'][$i],
'email_peserta' =>  $this->input->post['undangan'][$i],
'status'        =>  ['Diundang'][$i]
);
$this->db->insert_batch('kehadiran', $data);

我收到此错误: 在此处输入图像描述

请帮忙!

我认为你在这一行中有错别字。不要使用括号,否则它看起来像数组引用。

$count  =   count($this->input->get_post['undangan']);

我认为应该是括号...

$count  =   count($this->input->get_post('undangan'));

所以你得到一个错误,基本上说$this->input->get_post['undangan']不是一个数组。您的第一个应该检查一下,看看这给您带来了什么价值var_dump

然后你可能会注意到你的 get post 语法不正确:

https://www.codeigniter.com/user_guide/libraries/input.html#CI_Input::get_post

$this->input->get_post(‘some_data’, TRUE);

遵循该方案后,您不应该再遇到问题了。如果仍然需要验证变量是否正在发送。我不知道当我不知道变量是get还是post的情况时,所以我只会让它成为其中之一,而不是使用get_post

此外,一般来说,验证您的输入是个好主意。

$var = $this->input->post('somevar');
if (is_null($var)) {
show_error('missing params');
} else {
// your logic
}

相关内容

  • 没有找到相关文章

最新更新