问题描述
我正在使用Codeigniter。我的表单有多行,每行具有相同的字段名称。您能否帮助我如何通过循环将其保存在数据库中?我遇到了错误
错误号:1048列“ sn_unit”不能为空
请参见以下代码。预先感谢您的帮助。
这是视图
<?PHP
for ($i = 1; $i <= $number_to_check; $i++) {
?>
<hr>
<div class="row">
<div class="col-xl-4">
<div class="mb-3">
<label class="form-label"><strong><?PHP echo $i;?></strong></label>
<input type="text" class="form-control" name="sn_unit[]" placeholder="Unit Serial Number" required>
</div>
</div>
</div>
<?PHP
}
?>
这是控制器
for ($i = 1; $i <= count($this->input->post('sn_unit')); $i++) {
$sn_unit = $this->input->post('sn_unit[$i]');
$chk = $this->auth->saveItemReport();
}
解决方法
您可以简单地使用foreach遍历所有值。
foreach($this->input->post('sn_unit') as $key => $value)
{
$sn_unit = $value;
$chk = $this->auth->saveItemReport();
}
如果您仍然喜欢使用for循环;永远记住数组从0索引开始,所以:
$units = $this->input->post('sn_unit');
for ($i = 0; $i < count($units); $i++) {
$sn_unit = $units[$i];
$chk = $this->auth->saveItemReport();
}