манипулирование таблицей html с использованием foreach в codeigniter

0

Я создаю таблицу, которая генерирует новые столбцы в соответствии с создаваемыми датами.

Изображение 174551

Я могу создать его, но проблема в том, что таблица выглядит так:

Изображение 174551

Я думаю, проблема в моем foreach, но я не могу определить, где настоящая проблема.

Вот фрагмент моего кода:

    <table class="table table-bordered">  
    <tr>
    <th></th>
    <th colspan="3"><?php 
    $from = strtotime($_POST['from']);
    $to = strtotime($_POST['to']);
    if($list_timelist):
    do 
    {
        $current = date("Y-m-d", $from);

        $from = strtotime("+1 day", $from);
        $exist = 0;
        $date1 = "";
        $date2 ="";

    ?>          
        <?php 
        endforeach;
        if($exist==1)
        {
            $date2 = date("Y-m-d", strtotime($list->time_stamp));
            echo "
            <tr>    
                <th></th>
                <th colspan='3' class='date'>$date1</th>
            <tr>";
            echo "
            <tr>
                <td></td>
                <td>UT</td>
                <td>LEAVE/ABSENT</td>
                <td>OT</td>";           
            echo "</tr>";               
        }
        else
        {
            $a=date("Y-m-d, D", strtotime($current));
            $b=date("Y-m-d", strtotime($current));
            echo "
            <tr>
                <th colspan='3' class='date'>".$a."</th>                
            <tr>";
            echo"
            <tr>
                <td></td>
                <td>UT</td>
                <td>LEAVE/ABSENT</td>
                <td>OT</td>             
            </tr>";                 
        }
    } while ($from <= $to); 
    else:
    endif;
    ?></th>
    <th colspan="3">Total</th>
    <th rowspan="2">Filed OT</th>
    <th rowspan="2">OT(previous cut-off)</th>
    <th rowspan="2">Total OT for payment</th>
  </tr>
  <tr>
    <td></td>
    <td>UT</td>
    <td>LEAVE/ABSENT</td>
    <td>OT</td>
    <td>UT<br>(hrs)</td>
    <td>LEAVE/ABSENT<br>(days)</td>
    <td>OT / Excess Time<br>(hrs)</td>
  </tr>
  <tr>          

</table>

Спасибо за помощь!

Теги:
codeigniter
foreach

1 ответ

1
Лучший ответ

Изучите этот блок кода:

    <table class="table table-bordered" border='1'>  
    <tr>
    <th></th>
    <?php 
    $from = strtotime("2014-10-10");
    $to = strtotime("2014-10-12");

    //$interval = date_diff($from, $to);

    //$diff = $interval->format('%a');
    //echo $diff;
    do 
    {
        $current = date("Y-m-d", $from);

        $from = strtotime("+1 day", $from);
        $exist = 0;
        $date1 = "";
        $date2 ="";
            $a=date("Y-m-d, D", strtotime($current));
            $b=date("Y-m-d", strtotime($current));
            echo "

                <th colspan='3' class='date'>".$a."</th>                
            ";
    }
    while ($from <= $to); 
    ?>
    <th colspan="3">Total</th>
    <th rowspan="2">Filed OT</th>
    <th rowspan="2">OT(previous cut-off)</th>
    <th rowspan="2">Total OT for payment</th>
  </tr>
  <tr>
          <th></th>
  <?php
    $from = strtotime("2014-10-10");
    $to = strtotime("2014-10-12");
    do 
    {
        $current = date("Y-m-d", $from);

        $from = strtotime("+1 day", $from);
        $exist = 0;
        $date1 = "";
        $date2 ="";
            $a=date("Y-m-d, D", strtotime($current));
            $b=date("Y-m-d", strtotime($current));
            echo"


                <td>UT</td>
                <td>LEAVE/ABSENT</td>
                <td>OT</td>             
            ";
    }
    while ($from <= $to);     
        ?>
</tr>
</table>

Вы создали <TR> внутри элемента <TH>. Это приводит к тому, что столбцы являются вложенными.

  • 0
    Да. Спасибо. Коды внутри элемента <TH> предназначены для дублирования столбцов. Проблема в том, что таблица вертикальная, и мне нужно, чтобы она была вложена горизонтально.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню