如何将Foreach的结果从Controller传递给ViewIgniter

时间:2015-11-05 07:25:33

标签: php codeigniter foreach

就像我的标题一样,我怎样才能将foreach结果从控制器传递到视图? 到目前为止我这样做了: --Controller.php

    $get_url_subkategori = $this->ws_url->GetUrl('SubKategoriRetrieve?KodeKategori='.$param);
    $get_json_subkategori = json_decode(file_get_contents($get_url_subkategori), true);
    foreach($get_json_subkategori['SubKategoris'] as $itemSubKategori){
        $kodeSubKategori = $itemSubKategori['KodeSubKategori'];
        $namaSubKategori = $itemSubKategori['Nama'];
        $definisiSubKategori = $itemSubKategori['Definisi'];
        $unsurAbstrakSubKategori = $itemSubKategori['UnsurAbstrak'];
        $aliasSubKategori = $itemSubKategori['Alias'];

        $data['kodeSubKategori']=$kodeSubKategori;
        $data['namaSubKategori']=$namaSubKategori;
        $data['definisiSubKategori']=$definisiSubKategori;
        $data['unsurAbstrakSubKategori']=($unsurAbstrakSubKategori) ? 'true' : 'false';
        $data['aliasSubKategori']=$aliasSubKategori;
    }

    $this->load->view('include/header');
    $this->load->view('kategori_detail', $data);
    $this->load->view('include/footer');

然后,在我看来:

<h3>Sub Kategori</h3>
            <table class="table table-responsive table-inherit">
                <tr>
                    <th>Kode Sub Kategori</th>
                    <th>Nama Kategori</th>
                    <th>Definisi</th>
                    <th>Unsur Abstrak</th>
                    <th>Alias</th>
                </tr>
                <tr>
                    <?php
                        foreach((array)$kodeSubKategori as $itemKodeSubKategori)
                            echo '<td>'.$itemKodeSubKategori.'</td>';
                    ?>
                    <?php
                        foreach((array)$namaSubKategori as $itemNamaSubKategori)
                            echo '<td>'.$itemNamaSubKategori.'</td>';
                    ?>
                    <?php
                        foreach((array)$definisiSubKategori as $itemDefinisiSubKategori)
                            echo '<td>'.$itemDefinisiSubKategori.'</td>';
                    ?>
                    <?php
                        foreach((array)$unsurAbstrakSubKategori as $itemUnsurAbstrakSubKategori)
                            echo '<td>'.$itemUnsurAbstrakSubKategori.'</td>';
                    ?>
                    <?php
                        foreach((array)$aliasSubKategori as $itemAliasSubKategori)
                            echo '<td>'.$itemAliasSubKategori.'</td>';
                    ?>
                </tr>
            </table>

它仅成功显示最后一个数据。我想从foreach的结果中获取所有数据。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

因为数据数组每次都是覆盖,所以每次只得到最后一个值。

您需要使用自动递增值

创建数组
$i=0;
foreach($get_json_subkategori['SubKategoris'] as $itemSubKategori){
        $kodeSubKategori = $itemSubKategori['KodeSubKategori'];
        $namaSubKategori = $itemSubKategori['Nama'];
        $definisiSubKategori = $itemSubKategori['Definisi'];
        $unsurAbstrakSubKategori = $itemSubKategori['UnsurAbstrak'];
        $aliasSubKategori = $itemSubKategori['Alias'];

        $data[$i]['kodeSubKategori']=$kodeSubKategori;
        $data[$i]['namaSubKategori']=$namaSubKategori;
        $data[$i]['definisiSubKategori']=$definisiSubKategori;
        $data[$i]['unsurAbstrakSubKategori']=($unsurAbstrakSubKategori) ? 'true' : 'false';
        $data[$i]['aliasSubKategori']=$aliasSubKategori;
        $i++;
    }

答案 1 :(得分:1)

我建议您将$get_json_subkategori['SubKategoris']数组中的所有data数组传递给您的视图:

$get_url_subkategori = $this->ws_url->GetUrl('SubKategoriRetrieve?KodeKategori='.$param);
$get_json_subkategori = json_decode(file_get_contents($get_url_subkategori), true);
$data['itemSubKategori'] = $get_json_subkategori['SubKategoris'];

$this->load->view('include/header');
$this->load->view('kategori_detail', $data);
$this->load->view('include/footer');

在你看来:

   <h3>Sub Kategori</h3>
        <table class="table table-responsive table-inherit">
            <tr>
                <th>Kode Sub Kategori</th>
                <th>Nama Kategori</th>
                <th>Definisi</th>
                <th>Unsur Abstrak</th>
                <th>Alias</th>
            </tr>
             <?php foreach($itemSubKategori as $rowSubKategori): ?>
            <tr>
                <td><?php echo $rowSubKategori['kodeSubKategori'] ?></td>
                <td><?php echo $rowSubKategori['namaSubKategori'] ?></td>
                <td><?php echo $rowSubKategori['definisiSubKategori'] ?></td>
                <td><?php echo $rowSubKategori['definisiSubKategori'] ?></td>
                <td><?php echo $rowSubKategori['unsurAbstrakSubKategori'] ?></td>
                <td><?php echo $rowSubKategori['aliasSubKategori'] ?></td>
            </tr>
            <?php endforeach; ?>
        </table>

答案 2 :(得分:0)

  

将数据传递到一个数组中。并且你可以在一个foreach llop

中查看所有内容

使用此

在控制器中

$get_url_subkategori = $this->ws_url->GetUrl('SubKategoriRetrieve?KodeKategori='.$param);
$get_json_subkategori = json_decode(file_get_contents($get_url_subkategori), true);


$data['itemKodeSubKategori']    =   $get_json_subkategori;

$this->load->view('include/header');
$this->load->view('kategori_detail', $data);
$this->load->view('include/footer');

在视图中

<tr>
    <?php
        foreach($kodeSubKategori as $itemKodeSubKategori)
        {
            echo '<td>'.$itemKodeSubKategori['KodeSubKategori'].'</td>';
            echo '<td>'.$itemKodeSubKategori['Nama'].'</td>';
            echo '<td>'.$itemKodeSubKategori['Definisi'].'</td>';
            echo '<td>'.$itemKodeSubKategori['UnsurAbstrak'].'</td>';
            echo '<td>'.$itemKodeSubKategori['Alias'].'</td>';
        }
    ?>       
</tr>