66807


selectボックスでforを使って日付を今日から1週間分出すようにしてます。  
入力ホームで値を維持させるための関数はoldを使っていました。

タイトルや本文は `value="{{ old('title') }}"` で引継ぐことができたのですが  
selectをold関数でどのように表示させたらいいのかわかりません。

また、必須項目にしてバリデーションも追加したのですがそれもきちんと動いてくれません。

[code]

      <div style="display: flex">
    
        <div class="select_option">
          <div style="width: 300px">
            <select name="day" style="width: 300px; margin-bottom:10px">
              <option value="" disabled selected>日付</option>
              @for($i = 0; $i<=6; $i++)<option name="day" value="{{$day->addDay(1)}}">{{$day->format("Y年m月d日")}}</option>
                @endfor
            </select>
            @if($errors->has('date')) <p class="text-danger" style="font-size: 11px; margin:0">{{ $errors->first('date') }}</p> @endif
          </div>
    
          <div style="width: 300px">
            <select name="time" style="width: 300px">
              <option value="" disabled selected>時間</option>
              @for($i = 0; $i<=20; $i++) <option name="time" value="{{$time->addMinute(30)}}">{{$time->format("H:i")}}</option>
                @endfor
            </select>
            @if($errors->has('sendtime')) <p class="text-danger" style="font-size: 11px; margin:0">{{ $errors->first('sendtime') }}</p> @endif
          </div>
        </div>
    
    <option value=""{{$day->addDay(1)}}" selected　@if(old('day')=='"{{$day->addDay(1)}}') selected  @endif>{{$day->format("Y年m月d日")}}</option>
    
[/code]

のようにしてもダメでした。

[![画像の説明をここに入力](https://i.stack.imgur.com/oZ3kG.png)](https://i.stack.imgur.com/oZ3kG.png)


CC BY-SA 4.0
2020-05-20T05:45:00.963
66803
2020-06-02T06:53:05.080
2020-06-02T06:53:05.080
3060
38245
question
php laravel
laravel で select ボックスの値を維持したい


$dayに対してaddDay()を実行すると$dayの値に加算されます。よって、if文内で比較するときにaddDay()を実行してしまうと、更に1日加算されてしまうので、ifがtrueになることは絶対に無いです。つまり、以下のようにすれば良いはずです。

[code]

    <option
        value="{{ $day->addDay() }}"
        @if(old('day') === $day) selected @endif
    >
    {{ $day->format('Y年m月d日') }}
    </option>
    
[/code]


CC BY-SA 4.0
2020-05-20T06:38:56.420
66807
2020-05-20T08:32:52.107
2020-05-20T08:32:52.107
40240
40240
66803
answer


同じような箇所で詰まっていましたが、解決したので、共有します。  
ご参考までに。

[code]

    <select name="age" id="age">
       <option value="" disabled selected style='display: none;'>選択して下さい</option>
         @for ($i = 0; $i <= 50; $i++)
            <option value="{{ $i }}" @if(old('age')=="$i") selected @endif>{{ $i }} 
            </option>
         @endfor
       <option value="51" @if(old('age')=="51") selected @endif>50年以上</option>
    </select>
    
[/code]


CC BY-SA 4.0
2020-06-02T06:09:55.990
67220
2020-06-02T06:09:55.990
40444
66803
answer