【问题标题】:How can I get select option text in Laravel Controller如何在 Laravel 控制器中获取选择选项文本
【发布时间】:2017-11-03 03:45:05
【问题描述】:

我使用的是 Laravel 5.4,我有一个带有 post 方法的表单,在里面我有一个带有一些选项的选择

<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 中执行此操作?

【问题讨论】:

    标签: php laravel laravel-5 blade laravel-blade


    【解决方案1】:

    这实际上不是 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 元素),那么第一个选项可能更有意义。否则第二个可能更容易。

    【讨论】:

    • 第一句回答问题。这两个选项都有效,我将与我们的团队核实。谢谢!
    • @omixam “第一句话回答问题”是什么意思?
    • “这实际上不是 Laravel 的东西,它更像是一个基本的 HTML 表单。”
    • @omixam 是的,那是我的第一句话。怎么样?
    【解决方案2】:

    您不需要获取选择框的文本选项,只需获取该选择选项的值,现在您可以从数据库中获取此选项 只是李

    <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-&gt;brand

    【讨论】:

      猜你喜欢
      • 2014-07-03
      • 2021-05-09
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 2018-04-23
      相关资源
      最近更新 更多