【问题标题】:Put JSON data into html form input checkbox with PHP使用 PHP 将 JSON 数据放入 html 表单输入复选框
【发布时间】:2017-09-28 12:28:38
【问题描述】:

我想用 laravel 刀片将 json 数据放入 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'

【问题讨论】:

    标签: php html json laravel laravel-5


    【解决方案1】:
    [0] => {"value1":"tool_ad_id","value2":"\u65e5\u4ed8"}
    Index => String
    

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

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

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

    【讨论】:

    • 谢谢你的回复~!但我想得到 'value1' 和 'value2' ,我尝试 json_decode($request->test['0']['value1'], true) 也是非法字符串偏移 'value1'..
    • 不要尝试json_decode($request-&gt;test['0']['value1'], true) 只是json_decode($request-&gt;test['0'], true) 然后尝试访问'value1'
    猜你喜欢
    • 2012-01-24
    • 2015-05-16
    • 2017-03-30
    • 2020-05-10
    • 2013-12-31
    • 2020-03-18
    • 2018-08-31
    • 1970-01-01
    • 2019-11-18
    相关资源
    最近更新 更多