php - 获取选择输入 laravel 的“旧”值
问题描述
我正在验证我的注册表单。
如果输入是常规输入,如果它像这样失败,我可以填充以前的值
<input type="tel" name="phone" value="{{old('phone')}}">
如何填充选择选项的值?
<div class="input--select">
<label>Age Range <span>*</span></label>
<select name="age_range" class="age-range" value="{{old('age_range')}}" required>
<option selected disabled>Select your age range</option>
<option value="18-25">18-25</option>
<option value="26-35">26-35</option>
<option value="36-45">36-45</option>
<option value="46-55">46-55</option>
<option value="56-65">56-65</option>
<option value="66-75">66-75</option>
<option value="75+">75+</option>
</select>
@if ($errors->has('age_range')) <span class="error-message">Age range option is required.</span> @endif
</div>
解决方案
我建议将所有年龄都放在一个数组中,然后将该数组传递给查看:
$ages = ['18-25','25-50','50-75','75+']; // More dynamic and you can extend in anytime
现在更改 html :
<div class="input--select">
<label>Age Range <span>*</span></label>
<select name="age_range" class="age-range" value="{{old('age_range')}}" required>
// 1. first change which is creating your problem
<option {{ old('age_range') ? "" : "selected" }} disabled>Select your age range</option>
// 2. This is just optimization for short code
@foreach($ages as $age)
<option {{old('age_range') ==$age" ? $selected : ""}} value="{{$age}}">{{$age}}</option>
@endforeach
</select>
@if ($errors->has('age_range')) <span class="error-message">Age range option is required.</span> @endif
</div>
因此,在第 1 点中,您始终应用selected
with first 选项。
假设您的旧值是46-55
你的 html 看起来像:
<select name="age_range" class="age-range" value="{{old('age_range')}}" required>
<option selected disabled>Select your age range</option>
<option value="18-25">18-25</option>
<option value="26-35">26-35</option>
<option value="36-45">36-45</option>
<option selected value="46-55">46-55</option>
<option value="56-65">56-65</option>
<option value="66-75">66-75</option>
<option value="75+">75+</option>
</select>
如果您查看上面的 html,则有 2 个选定选项。Html 总是选择第一个,这就是造成问题的原因。
第 1 点将检查是否有旧值可用,它不会将其selected
应用于第一个占位符选项。
推荐阅读
- amazon-web-services - 有什么方法可以在 Athena 数据库中同时运行多个 SQL 查询
- docker - 充当代理的 Docker 注册表不提取图像
- jms - ActiveMQ如何以编程方式重新发送/重试DLQ消息
- java - JSP 测验没有正确记录分数
- python-3.x - 在代码中发现错误以递归方式添加数字,直到它变成一个pallindrom
- google-apps-script - 获取文件夹和子文件夹中的所有文件 Gscript
- c# - 使用 C# 从文本文件中提取特定文本
- python - Pandas - 在列中列出最常见的值以及最常见的子值
- android - Apple DeviceCheck 是否仍然适用于越狱的 iPhone?
- python - 如何从 AWS Glue 脚本中更新/删除雪花