提问者:小点点

仅显示json文件中一行的数组


这是我的控制器

public function showCategoryJson(){
    $this->load->model('user/category_model');
    $data[] = $this->category_model->displayCategory();

    echo json_encode($data);
}

我的模特

function displayCategory(){
  $query = $this->db->get('categories');
  $res = $query->result_array();
  return $res;
}

我的看法呢

<?php
  $url = site_url('user/category/showCategoryJson'); // path to your JSON file
  $data = file_get_contents($url); // put the contents of the file into a variable
  // echo $data;
  $results = json_decode($data); // decode the JSON feed

  foreach ($results as $key => $cat) { 
?>
<tr class="odd gradeX">
 <td><?php echo $cat[$key]->categoryname; ?></td>
 <td><?php echo $cat[$key]->username; ?></td>
 <td class="center"><a class="btn btn-success fa fa-edit"></a> <a class="btn btn-danger fa fa-trash delete" id="<?php echo $cat[$key]->categoryid; ?>"></a></td>
</tr>
<?php } ?>


共2个答案

匿名用户

开始“调试”的方法之一是打印$results的内容。在foreach循环之前,请尝试以下操作:

print_r($results);

结果将显示类似的东西:

数组([0]=

这意味着json内容已被解码成嵌套数组。

您可以尝试为json_decode函数添加“true”参数,并以数组的形式访问变量。

=json_decode($data, true);//解码JSON提要

完整代码:

    <?php
        $url = site_url('user/category/showCategoryJson'); // path to your JSON file
        $data = file_get_contents($url); // put the contents of the file into a variable
        $results = json_decode($data,true); // decode the JSON feed
        foreach ($results[0] as $key => $cat) { 
    ?>
    <tr class="odd gradeX">
    <td><?php echo $cat['categoryname']; ?></td>
    <td><?php echo $cat['username']; ?></td>   
    <td class="center"><a class="btn btn-success fa fa-edit"></a> <a class="btn btn-danger fa fa-trash delete" id="<?php echo $cat['categoryid']; ?>"></a></td>
    </tr>
    <?php } ?>

编辑:要将数据从控制器传递到视图,可以将模型的结果指定给变量,然后指示控制器加载视图以及存储数据的变量。

例如,在控制器中,可以更改以下内容:

public function showCategoryJson(){
    $this->load->model('user/category_model');
    $data['category_data'] = $this->category_model->displayCategory();
    $url = site_url('user/category/showCategoryJson'); // path to your JSON file
    $json_data = file_get_contents($url); // put the contents of the file into a variable
    $data['results'] = json_decode($json_data,true); // decode the JSON feed
    $this->load->view('[YOUR_VIEW_NAME]',$data);
}

然后可以在视图中使用$category_数据和$results。

匿名用户

您可以使用以下选项:

json_decode($data,true);

如果为TRUE,则返回的对象将转换为关联数组。