2017-04-13 14 views
0

私はJavaScriptを使用して、フォーム内のチェックボックスを作成しました:私は第一と第三のチェックボックスをチェックして、私を返しInput::get("is_ok")フォーム、送信するとLaravel 5のチェックボックス配列の値を取得する方法は?

<input type="checkbox" name="is_ok[]" /> 
<input type="checkbox" name="is_ok[]" /> 
<input type="checkbox" name="is_ok[]" /> 

を:

['on', 'on'] 

['on', null, 'on']として値を取得する方法はありますか['on', 'off', 'on']

ありがとうございます。

+0

私はlaravel collectiveを使用してデフォルト値0に設定し、クリックすると1 – lewis4u

+0

を設定する必要があります。チェックボックスをオンにすると、名前と値のペアがサーバーに送信されます。チェックされていない値はデフォルトで送信されません。 – apokryfos

+0

@apokryfosこのような値を追加すると '' ["1"、 "1"] 'が得られます。チェックされていない値が通過できず、チェックボックスがオフになっているかわかりません。 – aikutto

答えて

0

user_id, product_id etcのようなチェックボックスにいくつかの値を割り当ててください。

などです。ビュー例えば

<input type="checkbox" name="is_ok[]" value="1" /> 
<input type="checkbox" name="is_ok[]" value="2" /> 
<input type="checkbox" name="is_ok[]" value="3" /> 

コントローラ

<?php 
    if(isset($_POST['is_ok'])){ 
     if (is_array($_POST['is_ok'])) { 
      foreach($_POST['is_ok'] as $value){ 
       echo $value; 
      } 
      } else { 
      $value = $_POST['is_ok']; 
      echo $value; 
     } 
    } 
?> 

選択したチェックボックスの配列が表示されます。あなたの移行で

はdbテーブルのフィールドが0

$table->boolean->('is_ok')->default(0); 

{!! Form::checkbox('is_ok[]', false, isset($model->checkbox) ? : 0) !!} 

、あなたが使用していない場合はブール、デフォルトすることを設定します。

はこれがベストプラクティスです

+0

これは不要ですIMO! – lewis4u

+0

@apokryfosと同じ実装があなたに提案しました。少なくとも必要なチェックボックスが表示されます –

0

私見...それがお役に立てば幸いあなたはバニラのPHPを使用することができますフォームのためのララベルの集団

<input type="checkbox" name="is_ok[]" value="<?php isset($model->checkbox) ? : 0; ?>" /> 
0

私はあると思いますこれに対する「良い」解決策です。

<input type="checkbox" name="is_ok[0]" /> 
<input type="checkbox" name="is_ok[1]" /> 
<input type="checkbox" name="is_ok[2]" /> 

要求で

(ここでインデックスを強制):

$array = \Request::get("is_ok") + array_fill(0,3,0); 
ksort($array); 

をこれは予想通り(a)はチェックボックスインデックスが維持されることを保証します。 (b)要求が受信されると、ギャップが埋まる。

これはうんざりですが動作する可能性があります。

関連する問題