[英]How to read from JSON object array in php?
我有一个html代码 ,如下所示。 以下html代码显示复选框列表,如代码下方的屏幕快照所示。
<?php
$output['toggle_multi_tiles']=$_POST['toggle_multi_tiles'];
$output['episode_status']=$_POST['episode_status'];
$fp = fopen('../feeds/ptp-ess_landing.json', 'w');
fwrite($fp, json_encode($output));
fclose($fp);
logActivity();
if(file_exists('../feeds/ptp-ess_landing.json')){
$data = json_decode(file_get_contents('../feeds/ptp-ess_landing.json'));
}
?>
<?php if($data){
?>
<fieldset style="background-color:darkseagreen;">
<input type="checkbox" id="ptp" value="0" name="toggle_multi_tiles[]" <?php if($data->{"toggle_multi_tiles[]"}==0){echo
'checked';}?>>
<label for="toggle-multi-off">PTP</label>
<input type="checkbox" id="l'e" value="1" name="toggle_multi_tiles[]" <?php if($data->{"toggle_multi_tiles[]"}==1){echo
'checked';}?>>
<label for="position-one">L'E</label>
<div>
<button type="submit">Save</button> //Line A
</div>
</fieldset>
<?php } ?>
从上面的屏幕截图中选择前两个复选框后,在A行点击保存按钮,所有内容都将保存为JSON,如下所示:
{"toggle_multi_tiles":["0","1"]}
问题陈述:
我现在遇到的问题是保存2个复选框后,页面刷新上显示的唯一复选框是第一个( 不是两个 )。
html代码中的($data->{"toggle_multi_tiles[]"}==0)
正在从JSON中读取。
html代码中的($data->{"toggle_multi_tiles[]"}==1)
正在从JSON中读取。
对象中的键是toggle_multi_tiles
,而不是toggle_multi_tiles[]
,因此$data->{"toggle_multi_tiles[]"}
应该是$data->toggle_multi_tiles
。
此属性的值是一个字符串数组,可以使用in_array()
来测试其中是否包含值。
<input type="checkbox" id="ptp" value="0" name="toggle_multi_tiles[]" <?php if(in_array("0", $data->toggle_multi_tiles)){echo
'checked';}?>>
<label for="toggle-multi-off">PTP</label>
<input type="checkbox" id="l'e" value="1" name="toggle_multi_tiles[]" <?php if(in_array("1", $data->toggle_multi_tiles)){echo
'checked';}?>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.