使用PHP将JSON数据放入html表单输入复选框

时间:2017-05-01 01:43:10

标签: php html json laravel laravel-5

我想将json数据放入带有laravel blade的html表单输入复选框。

我有多个输入复选框值为test[]

然后我尝试使用htmlspecialchars将值打印到输入中。

如果我的前端检查此输入,后端使用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'

1 个答案:

答案 0 :(得分:2)

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

PHP 解析JSON,您正在接收JSON作为普通字符串。因此,为了将其转换为具有属性correspongind到键的PHP对象,您需要使用json_decode()

尝试$test = json_decode($request->test['0'], true),然后访问$test变量中的值。

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