2017-05-01 10 views
1

jsonデータをlaravel bladeのhtmlフォーム入力チェックボックスに入れたいと思います。JSONデータをPHPのhtmlフォーム入力チェックボックスに入れます

私はその後、私は入力にプリント値にhtmlspecialcharsを使用してみてくださいtest[]

として複数の入力チェックボックスの値を持っています。

私のフロントエンドは、この入力をチェックすると、バックエンドを使用しますprint_rはこの

Array 
(
    [0] => {"value1":"tool_ad_id","value2":"\u65e5\u4ed8"} 
    [1] => {"value1":"ad_group1","value2":"\u30c4\u30fc\u30eb\u5e83\u544aID"} 
) 

のようですが、私はreturn $request->test['0']['value1'];が値を取得することはできません使用します。

私は 'value1'と 'value2'を取得したいと思います。

PHP Laravel

@foreach($as as $key => $value) 
     <div class="col s6 m4 l3 blue-grey lighten-5"> 
     <?php 
      $data = ['value1' => $value['en'] ,'value2' => $value['jp'] ]; 
      $data_total = htmlspecialchars(json_encode($data)); 
     ?> 
     <input type="checkbox" id="test5{{ $key }}" value="{{$data_total}}" name="test[]" /> 
     <label for="test5{{ $key }}">{{$value['jp']}}</label> 
     </div> 
@endforeach 

Laravelコントローラ

return $request->test['0']['value1']; 

エラーメッセージ

Illegal string offset 'value1' 

答えて

2
[0] => {"value1":"tool_ad_id","value2":"\u65e5\u4ed8"} 
Index => String 

PHP JSONを解析すると、通常の文字列としてJSONが受信されます。したがって、キーに対応するプロパティを持つPHPオブジェクトに変換するには、json_decode()を使用する必要があります。

$test = json_decode($request->test['0'], true)を試してから、$test変数の値にアクセスしてください。

$value1 = $test['value1']; 
$value2 = $test['value2']; 
+0

ありがとうございました〜!私はjson_decode($ request-> test ['0'] ['value1']、true)も不正な文字列オフセット 'value1'を試してみました.. – Bruce

+1

'%1 'と' value2 ' json_decode($ request-> test ['0'] ['value1']、true) 'json_decode($ request-> test ['0']、true)'にアクセスして 'value1'にアクセスしてください。 –

+0

oh!非常にありがとう!問題は解決されました!ありがとう! – Bruce

関連する問題