【问题标题】:Show html select field selected as per database laravel显示根据数据库 laravel 选择的 html 选择字段
【发布时间】:2021-12-28 11:42:39
【问题描述】:

我有一个表users 与列stime

database

我想要实现的目标 - 我希望特定的 html 选项 <option> 在与数据库匹配时选择 selected

喜欢 - 如果stime = 600.0 那么这个选项<option value="600.0">10 minute</option>

将被选中<option value="600.0" selected>10 minute</option>

Laravel 刀片代码

    <form method="post" action="{{route('setstime2')}}" enctype="multipart/form-data">
        @csrf
    <div class="boxl" style="margin-left: 10%;">
        <h3 class="h31">Set Idle Time</h3>
<select name="select" class="form-select" style="margin-top: 8%;" aria-label="Default select example">
  <option value="60.0">1 minute</option>
  <option value="120.0">2 minute</option>
  <option value="180.0">3 minute</option>
  <option value="240.0">4 minute</option>
  <option value="300.0">5 minute</option>
  <option value="360.0">6 minute</option>
  <option value="420.0">7 minute</option>
  <option value="480.0">8 minute</option>
  <option value="540.0">9 minute</option>
  <option value="600.0">10 minute</option>
  <option value="660.0">11 minute</option>
  <option value="720.0">12 minute</option>
  <option value="780.0">13 minute</option>
  <option value="840.0">14 minute</option>
  <option value="900.0">15 minute</option>
  <option value="960.0">16 minute</option>
  <option value="1020.0">17 minute</option>
  <option value="1080.0">18 minute</option>
  <option value="1140.0">19 minute</option>
  <option value="1200.0">20 minute</option>
  <option value="1200.0">21 minute</option>
  <option value="1320.0">22 minute</option>
  <option value="1380.0">23 minute</option>
  <option value="1440.0">24 minute</option>
  <option value="1500.0">25 minute</option>
  <option value="1560.0">26 minute</option>
  <option value="1620.0">27 minute</option>
  <option value="1680.0">28 minute</option>
  <option value="1740.0">29 minute</option>
  <option value="1800.0">30 minute</option>
</select>
<div style="margin: -10px;"></div>
        <button type="submit" class="" style="margin-top: 28px;">Submit</button>
    </div>
    </form>

【问题讨论】:

    标签: html laravel


    【解决方案1】:

    你也可以这样做:

    <option value="600.0" @if ($user->stime === 600.0) selected @endif >10 minute</option>
    

    【讨论】:

    • 抱歉,@IGP 先回答。但感谢你的工作人员
    【解决方案2】:

    您可以使用三元运算符来实现这一点

    <option value="60.0" {{ $user->stime === 60.0 ? 'selected' : ''}}>1 minute</option>
    <option value="120.0" {{ $user->stime === 120.0 ? 'selected' : ''}}>2 minutes</option>
    ...
    <option value="1800.0" {{ $user->stime === 1800.0 ? 'selected' : '' }}>30 minutes</option>
    

    如果$user 是您的登录用户,您可以使用auth() 助手或Auth 外观。

    <option value="60.0" {{ auth()->user()->stime === 60.0 ? 'selected' : ''}}>1 minute</option>
    
    <option value="60.0" {{ Auth::user()->stime === 60.0 ? 'selected' : ''}}>1 minute</option>
    

    对于我在您的示例中看到的所有选项(1 到 30 分钟),一种非常紧凑的方法是使用 foreach()range()Str::plural

    <select name="select" class="form-select" style="margin-top: 8%;" aria-label="Default select example">
      @foreach (range (1, 30) as $mtime)
        @php($stime = number_format($mtime * 60, 1, '.', ''))
        <option value="{{ $stime }}" {{ $user->stime === $stime ? 'selected' : '' }}>
          {{ $mtime }} {{ Str::plural('minute', $mtime) }}
        </option>
      @endforeach
    </select>
    

    也可以使用@if/@endif 指令。

    <option value="{{ $stime }}" @if($user->stime === $stime) selected @endif>
        {{ $mtime }} {{ Str::plural('minute', $mtime) }}
    </option>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多