2016-12-29 2 views
-1

Я работаю над формой запроса котировки на своем сайте и нуждаюсь в некоторой помощи с функциональностью. Я пытаюсь получить значения из набора флажков, которые я передал в представление; как так:Получение значений из флажков в Laravel 5

Controller (GetQuote)

public function getQuote() 
    { 

     $services = array(
     'Accept donations', 
     'Update website on your own', 
     'E-Commerce', 
     ... 
    ); 

     return view('pages.quote')->withServices($services); 

    } 

Controller (postQuote)

public function postQuote(Request $request) 
    { 
     $this->validate($request, [ 
     'services' => 'required|array', 
     ... 
     ]); 


     $data = array(
     'services' => $request->service, 
     ... 
    ); 

     $data['services_checked'] = Input::get('service'); 
     if(is_array($services_checked)) 
     { 
     } 

     Mail::send('emails.quote', $data, function($message) use ($data){ 
     $message->from($data['email']); 
     $message->to('[email protected]'); 
     $message->subject('New quote request for ' . $data['firstname'] . ' ' . $data['lastname']); 

     }); 

     return redirect()->back()->with('message', "Thanks, your quote request has been sent"); 

    } 

Посмотреть

Я тогда Переберите значения в передаваемом массиве и отобразить его пользователю.

<article class="col-md-12 text-left services bx1-margin"> 
       {{ Form::label('services', "Please check all the functionality you would like to see in your new website:") }} 

       {{-- <label for="services">Please check all the functionality you would like to see in your new website.</label> --}} 
       <ul> 
       @foreach ($services as $servicesid => $service) 
        <li> 
        {{-- {{ Form::checkbox('agree', 1, true) }} --}} 
        <input id="{{$servicesid}}" value="{{$servicesid}}" name="service[{{$servicesid}}]" type="checkbox" class="custom-control-input form-check-input"> 
        <span class="custom-control-description">{{$service}}</span> 
        {{-- <input id="s-{{$servicesid}}" name="services" type="checkbox" class="custom-control-input form-check-input"> --}} 


        </li> 
       @endforeach 
       </ul> 
       </article> 

Когда пользователь отправляет форму, как мне пойти на получение отмеченных флажков?

Исследование

Я видел этот пост здесь: How to get the values for a series of checkboxes in Laravel 4 controller (if checked) я увидел пост ее (stackoverflow) и объясняет установки значения array[], я просто не совсем уверен в реализации.

ответ

2

Убедитесь, что input для типа checkbox используя такое же имя, как services[] в вашей HTML форме

<input id="{{$servicesid}}" value="{{$servicesid}}" name="service[]" type="checkbox" class="custom-control-input form-check-input"> 

Итак, когда вы передаете, просто проверить переменную $request->service в методе postQuote. Он должен содержать переменную массива со всеми зарегистрированными входными данными.

+0

Спасибо за это. Я попробую это в нескольких и отчитаюсь. – sogeniusio

+0

Итак, я подавил весь другой код и запустил 'dd ($ data [' service ']); и вуаля. Спасибо @ h44f33z – sogeniusio

Смежные вопросы