如何从php中的JSON对象数组中读取?

我有一个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 }  ?>

http://img.mukewang.com/6184e8b10001d0aa04910034.jpg

从上面的屏幕截图中选择前 2 个复选框后,点击 A 行的保存按钮,所有内容都保存在 JSON 中,如下所示:

{"toggle_multi_tiles":["0","1"]}


问题陈述:

我现在遇到的问题是在保存了 2 个复选框之后,页面刷新时显示的唯一复选框是第一个(不是两个)。

($data->{"toggle_multi_tiles[]"}==0) 从 html 代码读取 JSON。

($data->{"toggle_multi_tiles[]"}==1) 从 html 代码读取 JSON。

http://img.mukewang.com/6184e8bd0001eeba04630025.jpg

慕尼黑的夜晚无繁华
浏览 234回答 1
1回答

猛跑小猪

对象中的关键是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&nbsp; '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&nbsp; 'checked';}?>>
打开App,查看更多内容
随时随地看视频慕课网APP