我正在使用Laravel 5.4,我有一个带有post方法的表单,里面有一个带有一些选项的select
<select name="selection-list">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
如果我使用
echo $request->input('selection-list');
我只获得了所选选项的值,但我想要所选选项标签之间的文本。
如何在Laravel中执行此操作?
答案 0 :(得分:3)
这实际上不是一个Laravel的东西,它更像是一个基本的HTML表单。浏览器仅发送所选选项的值。这是预期的行为。
您需要将值的服务器端映射到文本:
$selectionOptions = [1 => 'A', 2 => 'B', 3 => 'C'];
$selected = $selectionOptions[$request->input('selection-list')];
或者您可以更新HTML以将文本作为值
<select name="selection-list">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
任何一个选项都应该没问题。这实际上取决于项目的其余部分。如果您已经在服务器上有映射(这通常用于首先动态生成HTML元素),那么第一个选项可能更有意义。否则第二个可能更容易。
答案 1 :(得分:0)
您不需要获取选择框的文本选项,只需获取该选择选项的值即可,现在您可以获取此选项表单数据库 只是李
<select name="brand" style="margin-bottom: 20px !important;" class="custom-select mr-sm-2" >
@foreach($brands as $id => $name)
<option value="{{ $id }}">{{ $name }}</option>
@endforeach
</select>
并在您的控制器中
$request->brand