در پروژه لاراول من فرمی به صورت زیر در بخش view دارم
<select name="gate" class="form-control text-right">
<option value="all">همه</option>
@foreach(Transaction::GATE as $gate)
<option value="{{$gate['value']}}">
{{$gate['value']}}
</option>
@endforeach
</select>
<button type="submit" class="btn btn-oblong">
جستجو
</button>
در بخش مدل Transaction
آرایه ای تعریف کردم که درگاه های بانکی رو مشخص می کنه
const MELLAT = 'mellat';
const SAMAN = 'saman';
const GATE = [
self::MELLAT => [
'value' => self::MELLAT,
'color' => 'danger'
],
self::SAMAN => [
'value' => self::SAMAN,
'color' => 'primary'
],
];
در فرم بالا حلقه @foreach
لیست درگاه ها رو به درستی نشون می ده.
حالا من میخوام وقتی یکی از درگاه ها رو انتخاب کردم و دکمه جستجو رو زدم، وقتی صفحه دوباره رفرش شد مقداری که انتخاب کرده بودم در قسمت select باقی مونده باشه. ولی وقتی صفحه رفرش میشه مقدار select هم به مقدار قبلی یعنی all برمیگرده. چطور میتونم این مشکل رو برطرف کنم.
اگه سوال درست متوجه سوال شما شده باشم، احتمالا کد زیر مشکل شما رو برطرف کنه.
کاری که کردم این بود که در حلقه
@foreach
شرطی قرار دادم که در صورت برابر بودن مقدارrequest
ارسال شده با یکی از مقادیر درون فرم selected به option اضافه میشه. selected در فرم html نشون دهنده انتخاب شدن اون option است.این کد رو میشه در جاهای دیگر و بدون لاراول هم مورد استفاده قرار داد و با php شرط رو نوشت.