2015-07-20 45 views
1

我想创建员工在日历表视图中作为附加图像的离开报告。TinyButStrong创建动态<th>与动态<tr>和​​循环问题

enter image description here

我有来自控制器取出雇员,并存储在和阵列。
同样的方式我提取日期(基于选定的年份和月份)在控制器中并存储在一个数组中。
基于此员工和日期,我正在获取每个员工的叶子并将其存储在数组中。

控制器

$month = 7; 
    $year = 2015; 
      for($d=1; $d<=31; $d++)//for dynamic dates as displayed in image 
      { 
       $time=mktime(12, 0, 0, $month, $d, $year);   
       if (date('m', $time)==$month)  
       $this->data['blk4'][]['date']=date('d', $time); 
       $this->data['blk5'][]['day']=date('D', $time); 
       $this->data['blk6'][]['fulldates']=date('Y-m-d',$time); 
      } 
      $data['employee'] = $this->teamprofile_model->allTeamMembers('team_profile_full_name', 'ASC');//fetching all amployee 

      foreach($data['employee'] as $d)//for each employee checking the leave 
      { 
       foreach($this->data['blk6'] as $date)//for each date 
       { 
        $this->db->where('employee_id',$d['team_profile_id']); 
        $this->db->where('leave_date',$date['dates']); 
        $Q=$this->db->get('leave_reports'); 
        if($Q->num_rows() > 0) 
        { 
         foreach ($Q->result_array() as $row) 
         { 
          $data1[] = $row; 
         } 
        } 
        $this->data['blk8'][]['leave'] = $data1[0]['leave_time'];//stored leave of each employee in this array 
        $data1=""; 
       } 
      } 

HTML

<table class="footable table table-bordered table-hover" border="1"> 
     <thead> 
      <tr> 
       <th>Employee</th>//display employee 
       <th><!--[blk4.date;block=th;comm]--><br/><!--[blk5.day;block=th;comm]--></th> //display dates as displying in above image 
      </tr> 
     </thead> 
     <tbody class=""> 
      <tr> 
       <td><!--[blk7.all_team_members;block=tr;comm]--></td>//dynamic employee list 
       <td>here i want to display the leave stored in [blk8.leave]</td>      
      </tr> 
     </tbody> 
</table> 

但问题是,[blk8.leave]存储所有员工离开每个日期的,如果我打印为[blk8 .leave; block = td; comm]然后它将所有数组值打印在一行中。我想打破这阵一个月的结束日期是31

enter image description here

输出应该是:

enter image description here

回答

1

的问题是当它需要你离开数据线性结构与日期关联。

TBS(TinyButStrong)作为内置功能,用于将表与动态列(或其他类似结构)合并。

下面的例子与你的问题非常相似,你可以很容易地适应它。 http://www.tinybutstrong.com/examples.php?e=dyncol1

但是您的数据结构应该修改。 这里是一个数据如何可能的例子:

 $blk7 = array(); 
     foreach($data['employee'] as $d)//for each employee checking the leave 
     { 
      $employee = array(
       'team_profile_id' => $d['team_profile_id'], 
       'all_team_members' => $d['all_team_members'], 
      ); 
      foreach($this->data['blk6'] as $date)//for each date 
      { 
       $this->db->where('employee_id',$d['team_profile_id']); 
       $this->db->where('leave_date',$date['dates']); 
       $Q=$this->db->get('leave_reports'); 
       if($Q->num_rows() > 0) 
       { 
        foreach ($Q->result_array() as $row) 
        { 
         $data1[] = $row; 
        } 
       } 
       $column = 'leave_' . $date['dates']; 
       $employee[$column] = $data1[0]['leave_time'];//stored leave of each employee in this array 
       $data1=""; 
      } 
      $blk7[] = $employee; 
     } 
+0

嘿非常感谢兄弟非常感谢。但我有一个疑问,那就是HTML代码是什么?​​这里我想显示假期小时商店在$ blk7 –

+0

我已经在$ $ this-> data ['blk7'] [] ['leave'] = $ employee; **在HTML中,我写了** <! - [blk7.leave.all_team_members; block = tr; comm] - > **显示员工姓名及其作品。但是leave_date是数组的动态元素,所以如何在HTML页面中写下休假时间。 –

+0

嘿,我已经完成了。我在html中代替休假时间写** <! - [blk7.leave.leavetime_ [blk6.dates; block = td;]; block = td; comm] - > **。再次感谢兄弟:) –