我的控制器
for($a=0; $a<count($area_id); $a++)
{
for($i=0; $i<count($estimated_time); $i++)
{
$project_area = new Projectarea;
$project_area->area_id = $area_id[$a];
$project_area->project_id = $project->id;
$project_area->estimated_time = $estimated_time[$i];
$project_area->save();
}
}
return Redirect::to('admin');
我的观点
<div class="form-group">
<label for="select_client">Choose area</label>
<select class="form-control" name="area_id[]" multiple="multiple">
@foreach($area as $row)
<option class="click" value="{{ $row->id }}" area="{{ $row->id }}">{{$row->area_name}}</option>
@endforeach
</select>
@foreach($area as $row)
<input class="other" id="{{ $row->id }}" type="text" name="estimated_time[]" placeholder="{{ $row->area_name }}" />
@endforeach
</div>
mysql结果。
如果我选择多个选择中的三个值,我将此结果存储在数据库中
project_id area_id estimated_time
123 7 0
123 7 2
123 7 3
123 7 4
123 7 0
123 8 0
123 8 2
123 8 3
123 8 4
123 8 0
123 9 0
123 9 2
123 9 3
123 9 4
123 9 0
124 8 0
谢谢
答案 0 :(得分:0)
你的错误是由于双重预告,你预计会花费太多时间。
选择了3个值=每个估算时间(for($a=0; $a<count($area_id); $a++)
)的3个循环(for($i=0; $i<count($estimated_time); $i++)
)* n循环
所以删除第二个foreach并通过数组访问POST:
var_dump($_POST);
for($a=0; $a<count($_POST['area_id']); $a++)
{
var_dump($_POST['estimated_time'][$_POST['area_id'][$a]]);
var_dump($_POST['area_id'][$a]);
echo 'insert';
}
编辑:这是对我们的代码进行更正,但您的构思仍然错误
答案 1 :(得分:0)
从您的问题中难以理解,但是,如果我理解正确,您试图根据位置插入项目的估计时间。问题是你实际上不需要内部for循环,因为,estimate_time数组和area_id数组实际上是相同的大小。
请尝试以下代码:
for($i=0; $i<count($area_id); $i++)
{
$project_area = new Projectarea;
$project_area->area_id = $area_id[$i];
$project_area->project_id = $project->id;
$project_area->estimated_time = $estimated_time[$i];
$project_area->save();
}
return Redirect::to('admin');