首页 > 解决方案 > 从 Laravel 的下拉菜单中获取数据

问题描述

我在 laravel 7 中创建了一个联系表单,其中一个字段是一个简单的选择下拉列表,它看起来像这样:

<select name="subject" id="subject" class="form-control">
   <option value="">Select ...</option>
   <option value="gen">General</option>
   <option value="sales">Sales</option>
</select>

当我发送表单时,我会收到一封电子邮件,其中包含用户在表单中填写的内容。选择一个选项后,将在电子邮件中显示该值。我想显示选择选项的实际内容。所以应该显示的不是“gen”而是“General”。

这是我的控制器代码:

public function contactSubmit(Request $request) 
{
    $this->validate($request, [
        'name' => 'required',
        'email' => 'required|email',
        'subject' => 'required',
        'msg' => 'min:10'
    ]);

    $data = array(
        'name' => $request->name,
        'email' => $request->email,
        'subject' => $request->subject,
        'msg' => $request->msg
    );

    Mail::send('emails.contactemail', $data, function($msg) use($data) {
        $msg->from($data['email']);
        $msg->to('mail@gmail.com');
        $msg->subject('Contact us');
    });
}

这是发出的电子邮件的刀片内容:

<strong>From:</strong> {{$name}}
<br>
<strong>Subject:</strong> {{$subject}}
<br>
<strong>Email:</strong> {{ $email }}
<br><br>
<strong>Message:</strong> <br><br>
{{ $msg }}

标签: phplaravel

解决方案


您可以省略 value 属性,这样可以从选项元素的文本内容中获取值。

<select name="subject" id="subject" class="form-control">
  <option value="">Select ...</option>
  <option>General</option>
  <option>Sales</option>
</select>

查看文档选项元素


推荐阅读