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

Posted

技术标签:

【中文标题】使用 PHP 将 JSON 数据放入 html 表单输入复选框【英文标题】:Put JSON data into html form input checkbox with PHP 【发布时间】: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'

【问题讨论】:

【参考方案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'

以上是关于使用 PHP 将 JSON 数据放入 html 表单输入复选框的主要内容,如果未能解决你的问题,请参考以下文章

如何使用从 javascript/html 中的外部 php 文件中提取的 JSON 数据?

如何使用 PHP 和 Mysql 将搜索框放入数据库表中

将多个 JSON 数据转换为 HTML 表 [重复]

如何使用 php 将这个 JSON url 解析为 HTML 表/列表的授权

使用 JQuery 将 JSON 数组放入 HTML 列表

使用jQuery $ .ajax方法显示包含MySQL表数据的JSON [关闭]