Php 表单提交失败时保留下拉列表选择/值-Laravel 6.x

Php 表单提交失败时保留下拉列表选择/值-Laravel 6.x,php,html,laravel,Php,Html,Laravel,我在Laravel6.x中创建了一个提交表单,其中包括下拉列表,每个列表都由数据库填充,并在blade文件中使用“@foreach”循环。以下是我的HTML/PHP代码: <div id="event-sport"> <span>Sport:</span> <select name="sport"> <option value="default" selected="selected" disabled hid

我在Laravel6.x中创建了一个提交表单,其中包括下拉列表,每个列表都由数据库填充,并在blade文件中使用“@foreach”循环。以下是我的HTML/PHP代码:

<div id="event-sport">
    <span>Sport:</span>
    <select name="sport">
        <option value="default" selected="selected" disabled hidden>Select Sport</option>
        @foreach($sports as $sport)
            <option value="{{ $sport->id }}" title="{{ $sport->desc }}">{{ $sport->name }}</option>
        @endforeach
    </select>
    @if ($errors->has('sport'))
        <span id="error-msg" style="color:red; font-size:1.5vh;"><br>{{ 'Please select a sport' }}</span>
    @endif
</div>

运动:
选择运动
@foreach($sports as$sport)
{{$sport->name}
@endforeach
@如果($errors->has('sport'))

{{'请选择一项运动'}} @恩迪夫
我使用“{old('''}}}”helper方法在表单提交失败后将其他输入保存在textareas和inputs等元素中,但我不知道如何保存下拉列表的选中选项(及其值)

下拉列表的当前行为如下:

  • 表单已加载-未选择任何内容
  • 我选择一个选项
  • 我提交表格(未正确填写表格的其余部分),因此 (无论如何都会失败)
  • 表单不会为此下拉列表返回错误消息,但 选择设置为默认值(“选择运动”)
  • 我重新提交了表格,但没有触及下拉列表
  • 表单返回该下拉列表的错误消息,要求 选择一个选项

  • 提前感谢您的建议

    多亏了Philip提供的帮助,我才明白了这一点。答案毕竟很简单

    我所做的只是在选择框的
    标记中,在
    foreach
    循环中添加
    {{old('sport')==“$sport->id”?'selected':'}}
    。但是,对于编辑表单,这一行有点改变,因为在编辑表单中,必须首先从数据库中绘制值,然后从“旧”选择中更改

    创建表单:

    <div id="event-sport">
        <span>Sport:</span>
        <select name="sport">
            <option value="default" selected="selected" disabled hidden>Select Sport</option>
            @foreach($sports as $sport)
                <option value="{{ $sport->id }}" {{ old('sport') == "$sport->id" ? 'selected' : '' }} title="{{ $sport->desc }}">{{ $sport->name }}</option>
            @endforeach
        </select>
    
        @if ($errors->has('sport'))
            <span id="error-msg" style="color:red; font-size:1.5vh;"><br>{{ 'Please select a sport' }}</span>
        @endif
    </div>
    
    
    运动:
    选择运动
    @foreach($sports as$sport)
    {{$sport->name}
    @endforeach
    @如果($errors->has('sport'))
    
    {{'请选择一项运动'}} @恩迪夫
    编辑来自:

    <div id="event-sport">
        <span>Sport:</span>
         <select name="sport">
             <option value="{{$event->sport->id}}" selected="selected" disabled hidden>{{$event->sport->name}}</option>
             @foreach($sports as $sport)
                 <option value="{{ $sport->id }}" {{ $event->sport->id == "$sport->id" ? 'selected' : '' }} title="{{ $sport->desc }}">{{ $sport->name }}</option>
             @endforeach
         </select>
    
         @if ($errors->has('sport'))
             <span id="error-msg" style="color:red; font-size:1.5vh;"><br>{{ 'Please select a sport' }}</span>
         @endif
    
     </div>
    
    
    运动:
    {{$event->sport->name}
    @foreach($sports as$sport)
    运动->id==“$sport->id”?”所选“:”}}title=“{{{$sport->desc}}}”>{{{$sport->name}
    @endforeach
    @如果($errors->has('sport'))
    
    {{'请选择一项运动'}} @恩迪夫

    请注意,在编辑表单中,添加到
    标记的内容是
    {{$event->sport->id=“$sport->id”?“selected”:“}}

    嗨,看看这个链接。也许对你有帮助。这帮我弄明白了,谢谢!