2016-07-17 7 views
1

Ich habe eine einfache Form in einer Ansicht wie folgt aus:Laravel Checkbox ist nicht auf Controller eingereicht

<form action="{{ URL::route('admin.x') }}" method="POST"> 
    <input type="text" value="b" name="title" /> 
    <input type="text" value="c" name="type" /> 
    <input type="text" value="d" name="postfix" /> 
    <input type="checkbox" name="check" value="ss" /> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
</form> 

I

verwendet
dd(Input::all()); 

für alle Werte geschrieben an die Steuerung aus dem Blickfeld zu überprüfen. Das Ergebnis ist wie unten und ich möchte wissen, wie man den Checkbox-Wert mit dem Formular schreibt.

Array: 4 [▼

"title" => ""

"type" => ""

"Postfix" => ""

„_token "=> "kSM3pO11KOOWQcCx4PeWcbi4r4AsFx0rSGQoVFtG"

]

Antwort

0

Eine Checkbox-Eingabe wird nicht an das serverseitige Skript übergeben, wenn dies nicht vom Benutzer oder von einem clientseitigen Skript überprüft wird. Also, in diesen Fällen wird die Eingabe nicht

In Laravel zu Ihrem Controller gesendet, wenn Sie zu ‚normalisieren‘ wollen irgendwie die Situation, wenn der Eingang nicht gesendet werden, können Sie ein Feld erstellen, indem Sie sich selbst:

$data = Input::all(); 

if (! isset($data['check']) 
    $data['check'] = false; 
+0

Sie meinen, wenn das Kontrollkästchen durch Benutzer aktiviert ist, wird es in dd (Input :: alle()) Ergebnis angezeigt werden? –

+0

Ja, wenn Sie das Kontrollkästchen in Ihrem Beispiel aktivieren: '" check "=>" ss "' as 'ss' ist der Wert, den Sie diesem Eingang zugewiesen haben – Moppo

+0

aber es ist nicht geschehen, wie Sie sagen. –

0

Dies gibt true zurück, wenn das Kontrollkästchen aktiviert ist, false, wenn nicht.

Input:has('check') 
+0

Kein Unterschied, um es zu überprüfen oder nicht! vielleicht stimmt etwas nicht, aber es hat mich trotzdem falsch zurückgegeben. –

0

können Sie sicherstellen, dass Ihre Server-Seite einen Wert für die Checkbox erhält, unabhängig davon, ob es überprüft wurde, durch oben die Checkbox Feld ein verstecktes Eingabefeld mit dem gleichen Namen zu schaffen.

Auf diese Weise erhält die Server-Seite den Wert aus dem ausgeblendeten Eingabefeld, wenn das Formular ohne Kontrollkästchen übergeben wird. Wenn das Kontrollkästchen aktiviert ist, erhält der Server den geprüften Wert, da das Feld niedriger ist die Form.

<input type="hidden" name="checkbox" value="0"/> <input type="checkbox" name="checkbox" value="ss"/>