使用 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->test['0'], true)
,然后访问$test
变量的值。
$value1 = $test['value1'];
$value2 = $test['value2'];
【讨论】:
谢谢你的回复~!但我想得到 'value1' 和 'value2' ,我尝试 json_decode($request->test['0']['value1'], true) 也是非法字符串偏移 'value1'.. 不要尝试json_decode($request->test['0']['value1'], true)
只是json_decode($request->test['0'], true)
然后尝试访问'value1'以上是关于使用 PHP 将 JSON 数据放入 html 表单输入复选框的主要内容,如果未能解决你的问题,请参考以下文章
如何使用从 javascript/html 中的外部 php 文件中提取的 JSON 数据?