当第一个表格有效时,然后打开第二个表格。 同样有效,然后提交两个.second表单与第一个表单一起生成 表单数据。
EventController.php
公共函数create() {
$categories = Category::with('subcategory')->where('is_active', 1)->get();
$seat_types = SeatType::where('is_active', 1)->get();
return view('admin.event.create', compact('categories', 'seat_types'));
}
公共功能商店(StoreEventRequest $ request) {
$event_data = $request->all();
$s_date = date('Y-m-d H:i:s', strtotime($request->start_time));
$e_date = date('Y-m-d H:i:s', strtotime($request->end_time));
$period = CarbonPeriod::create($s_date, $e_date);
$date_range = [];
$seat_types = SeatType::where('is_active', 1)->get();
foreach($period as $date)
{
$date_range[] = date('d M Y H:i:s', strtotime($date));
}
return view('admin.event.createSeat', compact('date_range'));
}
公共功能storeSeat(StoreEventSeatRequest $ request)
{
dd($request->all());
}
2.event刀片文件:-create.blade.php
<form action="{{ route('event.store') }}" >
..
</form>
3.event座位刀片文件:-createSeat.blade.php
<form action="{{ route('event.seat.store') }}">
..
</form>```
4.Request validation file of event :- StoreEventRequest.php
public function rules()
{
return [
'title' => 'required|max:100',
'category_id' => 'required',
'sub_category.*' => 'required',
'start_time' => 'required|unique:events',
'end_time' => 'required|unique:events',
'type' => 'required',
'address' => 'required|max:200',
'image.*' => 'mimes:jpeg,png,jpg,gif,svg',
'image' => 'required|array|min:2',
'banner' => 'required|image|mimes:jpeg,png,jpg,gif,svg',
];
}
5.Request validation file of eventseat :- StoreEventSeatRequest.php
public function rules()
{
return [
'seat_type.*' => 'required',
'quantity.*' => 'required|numeric|gt:0',
];
}
答案 0 :(得分:1)
如果您不喜欢javascript,请坚持使用传统形式。仅使用后端处理就可以做到这一点。
Form1->收集数据并发布到服务器。验证form1数据并 将字段保存在用户会话重定向中的数组中,形成表格2
Form2->收集数据并发布到服务器。验证form2数据。
从会话,步骤1数据,当前请求的步骤2中保存会话。
如果用户需要在任何页面上按回,就可以棘手。您需要查看会话,并查看该步骤中是否已经有会话表单数据。然后,您可以将其传递给视图,以使用较早的数据重新填充表单。