问题描述
概述:
我让预订系统用户可以选择多个约会(基于日期唯一日期),而不是在该日期他们可以为所选日期添加时间
这是我的看法
<form action="{{ route('user.booking') }}" method="POST">
@csrf
<div class="row">
<div class="col-md-6">
@foreach ($appget as $appdata)
<div class="card">
<div class="card-header">
<b>
{{ $appdata->date }}
</b>
<br>
<span class="text-warning">
per slot we allow only {{ $appdata->count }} booking
</span>
</div>
{{ $appdata->id }}
<div class="card-body">
<div class="row">
@PHP
$times = DB::table('times') ->where('app_id',$appdata->id)->get();
@endPHP
@error('time')
<span class="text text-danger">
{{ $message }}
</span>
@enderror
@foreach ($times as $item)
@PHP
$blocktime = DB::table('bookings')
->where('app_id',$appdata->id)
->where('time',$item->time)
->where('status',1)
->get();
$apoiid = DB::table('appointments')->where('id',$appdata->id)->first();
$totlal = $appdata->count;
@endPHP
{{-- @if (count($blocktime) < $totlal) --}}
<div class="col-md-3" style="padding-bottom: 10px;">
<label class="btn btn-outline-primary">
<input type="radio" name="time" value="{{ $item->time }}">
<span>
{{ $item->time }}
</span>
{{-- <input type="text" name="date" value="{{ $appdata->date }}"> --}}
</label>
</div>
{{-- @endif --}}
@endforeach
</div>
<input type="hidden" name="user_id" value="{{ $user->id }}">
<input type="hidden" name="app_id" value="{{ $appdata->id }}">
</div>
</div>
@endforeach
</div>
</form>
解释我在这里做了什么:
1st I foreach 我的指定然后在里面 for each I for each time
我的前端是这样的:
你可以看到
2021-04-22 有 2 次 9.00 Am 和 9.30 AM 此应用 ID 为 3
2021-04-23 有 2 次 10.00 Am 和 10.30 AM,此应用 ID 为 4
2021-04-20 没时间让这个应用 id 是 5
<input type="hidden" name="app_id" value="{{ $apoiid->id }}">
但是这个值总是通过 5(最后一次约会 id)。
我该如何解决这个问题?
解决方法
这样你就可以将它们全部作为一个数组。您还应该编辑其他输入。
...
@foreach ($appget as $key => $appdata)
...
...
<input type="hidden" name="data[{{$key}}][app_id]" value="{{ $apoiid->id }}">
...
,
问题是,你有一个形式,所以你有 3x name="app_id" 并且总是使用最后一个。我会为每个表单创建新表单,以便您获得正确的数据。
<input type="hidden" name="app_id" value="{{ $apoiid->id }}">