Codeigniter爆炸到html表

时间:2015-09-30 05:07:26

标签: php html codeigniter

我目前有问题爆炸到html表。

我的控制器

public function idp_test()
{
    $this->load->model('groups/groups_model');
    $scholar_id = $this->session->userdata('scholar_id');
    $groups = $this->groups_model->retrieve_groups_idp($this->scholar->level_id);

    $content = array(
        'groups'            => $groups,
        'scholar'           => $this->scholar,
        'page_title'        => 'My individual development plan',
        'page_view'         => 'scholar/activities/idp_test',
        'page_scripts_view' => 'scholar/inc/_choose_activities_scripts',
        'sidebar_menu'      => 'idp test'
    );


    $this->load->view("theme/base", $content);
}

我的模特

public function retrieve_groups_idp($level_id)
{

    $this->db->select("groups.*, levels.name as levelname");
    $this->db->join('activities', 'groups.activity_ids = activities.activity_id' );
    $this->db->join('levels', 'levels.level_id = groups.level_id', 'left' );
    $this->db->join('activity_types', 'activities.activity_type_id = activity_types.activity_type_id', 'left' );
    $this->db->where('groups.level_id', $level_id);
    $this->db->group_by('groups_name');
    $this->db->order_by('groups_name');

    $qr = $this->db->get('groups');

    return $qr->result();
}

public function retrieve_activity_desc($activity_ids)
{
        $activity_desc_arr[] = explode(', ', $activity_ids);

        foreach ($activity_desc_arr as $activity_id){

            $this->db->select("activity_id as activityid, CONCAT(activities.name, ' - ', activity_types.name) AS description", FALSE);
            $this->db->join('activity_types', 'activities.activity_type_id = activity_types.activity_type_id');
            $this->db->where_in('activities.activity_id', $activity_id);

            $qr = $this->db->get('activities');

            return $qr->result();
        }
}

我的观点

<?php foreach ($groups as $groups): ?>
                        <table class="table table-vcenter">
                            <thead>
                                <tr class="active">
                                    <th><?php echo $groups->groups_name?></th> <!--Series Header -->
                                    <th class="text-center"><small><strong>Module Type</strong></small></th>
                                    <th class="text-center"><small><strong>Status</strong></small></th>
                                    <th class="text-center"><small><strong>Action</strong></small></th>
                                </tr>
                            </thead>
                            <tbody>
                                    <tr>
                                        <td><?php 
                                                $rows = $this->groups_model->retrieve_activity_desc($groups->activity_ids);
                                                    foreach ($rows as $row){
                                                        echo var_dump($row->description);
                                                    }
                                        ?></td>
                                        <td class="text-center">belom lagi</td>
                                        <td class="text-center">TO ATTEND</td>
                                        <td class="text-center"><a href="javascript:void(0)" class="label label-success">View Session</a></td>
                                    </tr>
                            </tbody>
                        </table>
                        <?php endforeach ?>

我无法发布图片,所以下面是目前为止的一些示例

FS系列1 |模块类型|状态| ACTION

系列1 - FILSeries 1 - CBLSeries 1 - PEL | belom lagi |参加|

我需要实现的就像下面的示例

FS系列1 |模块类型|状态| ACTION

系列1 - FIL | belom lagi |参加|

系列1 - CBL | belom lagi |参加|

系列1 - PEL | belom lagi |参加|

我是php&amp;的新手codeigniter,抱歉我的英文。

由于

2 个答案:

答案 0 :(得分:0)

考虑一下您的视图代码中包含的内容:

<tr>
  <td><?php 
    foreach($rows as $row){
      var_dump($row->description);
    }
  ?>
  </td>
  <td>belom lagi</td>
  <td>to attend</td>    
</tr>

当然这将全部打印到一个表格单元格中,如何生成其他内容,对吧?

你需要的是这样的东西:

<?php
  foreach($rows as $row){
    echo "<tr>"; // you need a new row for every entry
    echo "<td>".$row->description."</td>";
    echo "<td>belom lagi</td>";
    echo "<td>to attend</td>";
    echo "</tr>";
  }
?>

答案 1 :(得分:0)

经过一些研究后,我想出来了,只想与大家分享。

已编辑 - 控制器

public function idp_test()
{
    $this->load->model('groups/groups_model');
    $this->load->model('activities/activity_type_model');

    $scholar_id = $this->session->userdata('scholar_id');
    $groups = $this->groups_model->retrieve_groups_idp($this->scholar->level_id);

    foreach ($groups as $group) {
        $act_desc = $this->groups_model->retrieve_activity_desc($group->activity_ids);
        $group->activity_ids = $act_desc;
    }

已编辑 - 查看

<!-- START TABLE HEADER -->
                        <?php foreach ($groups as $group): ?>
                        <table class="table table-vcenter">
                            <thead>
                                <tr class="active">
                                    <th><?php echo $group->groups_name?></th> <!--Series Header -->
                                    <th class="text-center"><small><strong>Module Type</strong></small></th>
                                    <th class="text-center"><small><strong>Status</strong></small></th>
                                    <th class="text-center"><small><strong>Action</strong></small></th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php foreach ($group->activity_ids as $session): ?>
                                    <tr>
                                        <td><?php echo $session->description; ?></td>
                                        <td class="text-center"><?php echo $session->modulename; ?></td>
                                        <td class="text-center">STATUS</td>
                                        <td class="text-center"><a href="javascript:void(0)" class="label label-success">View Session</a></td>
                                    </tr>
                                <?php endforeach ?>
                            </tbody>
                        </table>
                        <?php endforeach ?>

                        <!-- END 1 -->

按照我的需要出来。

谢谢stackoverflow。