2016-04-09 12 views
2

Was ich versuche zu tun ist, Standard-Blade-Select-Formular mit mehreren Optionen zu konvertieren, wo Sie Optionen mit Strg zu einem gedrückt werden müssen, wo Sie Kontrollkästchen verwenden, um mehrere Auswahlmöglichkeiten auszuwählen.Laravel - Form select multiple

Meine Form sieht wie folgt aus:

{!! Form::open(array('action' => '[email protected]_step_two', 'method' => 'post')); !!} 
    {!! Form::select('services', $servicesList, null, array('multiple'=>'multiple','name'=>'services[]')); !!} 
    {!! Form::submit('Next'); !!} 
    {!! Form::close(); !!} 

Was sollte ich das ändern sich zu?

+0

Sie meinen, Sie unten auf den Drop-Down eine Checkbox haben, und wenn es die mehr Optionen angeklickt wird, sollten so ausgewählt werden. Entschuldigung, wenn es falsch verstanden hat –

Antwort

1

Die Form::select() empfängt ein Array oder eine Sammlung, die dann durchlaufen wird, um alle <select> Elementoptionen zu generieren. Wenn Sie stattdessen Kontrollkästchen verwenden möchten, müssen Sie manuell durchlaufen jedes Kontrollkästchen zu erstellen:

{!! Form::open(array('action' => '[email protected]_step_two', 'method' => 'post')); !!} 
    @foreach ($servicesList as $value => $name) 
     {!! Form::checkbox('services[]', $value, ['id' => 'service' . $value]); !!} 
     {!! Form::label('service' . $value, $name) !!} 
    @endforeach 

    {!! Form::submit('Next'); !!} 
{!! Form::close(); !!} 

Die oben ein Formular mit einer Liste von Kontrollkästchen erstellen wird, die aufgeklebten Etiketten haben. Das Attribut id wird hinzugefügt, so dass Sie auch auf das Label klicken können, um das entsprechende Kontrollkästchen auszuwählen, da der erste Parameter Form::label() das for Attribut des <label> generiert, das einem Feld <input> mit demselben Wert zugeordnet ist für die id, und da eine id eindeutig sein muss, wird es mit dem Wert wie 'service' . $value generiert, da alle Werte auch eindeutig sein sollten.