Получение данных из выпадающего меню в Laravel

#php #laravel

#php #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 }}
  

Комментарии:

1. <option value="General">General</option> ?

2. возникнет ли проблема, если вы используете «General» вместо «gen» в своем значении параметра?

3. И какой у вас вопрос по этому поводу? Почему бы не сопоставить эти значения в вашем контроллере?

Ответ №1:

Вы можете не указывать атрибут value, делая это, значение берется из текстового содержимого элемента option.

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

Взгляните на элемент docs Option

Ответ №2:

Укажите значение в опции, чтобы получить правильный вывод

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