简体   繁体   English

如何将 Foreach 的结果从 Controller 传递到 View CodeIgniter

[英]How Can I Pass Result of Foreach from Controller to View CodeIgniter

just like my title, how can I pass foreach result from controller to view?就像我的标题一样,如何将 foreach 结果从控制器传递到视图? So far I did this: --Controller.php到目前为止,我是这样做的:--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');

Then, in my view:然后,在我看来:

<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>

It successfully show ONLY THE LAST ONE data.它成功地只显示最后一个数据。 I want to get all data from the result from foreach.我想从 foreach 的结果中获取所有数据。 How can I do that?我怎样才能做到这一点?

Because you data array override each time that's y you get only last value every time.因为您每次都覆盖数据数组,所以每次都只获得最后一个值。

You need to create your array with auto incremented value您需要使用自动递增的值创建数组

$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++;
    }

I suggest you to pass all $get_json_subkategori['SubKategoris'] array in data array to your view:我建议您将data数组中的所有$get_json_subkategori['SubKategoris']数组传递给您的视图:

$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');

And in your view:在你看来:

   <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>

Pass data in one array.在一个数组中传递数据。 and you can catch all in view at one foreach llop并且您可以在一次foreach llop 中查看所有内容

Use this用这个

In Controller在控制器中

$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');

In View在视图中

<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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我怎样才能将此查询传递给codeigniter中的控制器,并在我的foreach中使用它 - how can i pass this query to my controller in codeigniter and to use this in my foreach in view 如何在codeigniter视图中预测此数组结果和回显 - How can i foreach this array result and echo in codeigniter view 我无法将 controller 中的数据传递到 CodeIgniter 3 中的视图 - I can't pass the data from the controller to the view in CodeIgniter 3 如何从foreach传递值以在Codeigniter中查看 - How to pass values from foreach to view in codeigniter 如何通过Codeigniter控制器数组查看和使用foreach函数? - How to pass Codeigniter controller array to view and use foreach function? 我如何将多个变量从视图传递到Codeigniter中的控制器 - how i pass multiple variables from view to controller in codeigniter 如何将变量从控制器传递到Codeigniter中的视图? - How do I pass a variable from the controller to the view in Codeigniter? 如何将输入值从视图传递到控制器和模型以正确获取数据? 代码点火器 - How can I pass input value from view to controller and model to fetch data correctly? Codeigniter Codeigniter:模型foreach将数组传递给控制器​​-&gt;查看 - Codeigniter: model foreach pass array to controller -> to view Codeigniter模型,用于将每个数组传递给控制器​​-&gt;查看 - Codeigniter model foreach pass array to controller -> to view
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM