2016-05-12 2 views
-5

Мне нужно изменить мой код, чтобы отобразить 1 таблицу, содержащую 8 результатов, остановить, а затем создать еще одну целую новую таблицу с результатом 9 и выше.Продолжить цикл после 8 результатов - разделение на целую новую таблицу

У меня есть идея, что перерыв; и продолжать; может быть полезным, но как я должен обернуть всю таблицу в цикле foreach и предотвратить ее отображение 8 + таблиц, которые я не знаю.

Я определяю, что подсчет HEADER составляет более 8 столбцов. В этом примере имеется 9 заголовков. Включая первый пустой.

enter image description here

<?php 

$table3 = get_field('bottom_chart'); 

if ($table3) { 

    if($table3['header']) { 
     $theader3 = 1; 
     foreach ($table3['header'] as $th1) { 
      //echo $theader3; 
      $theader3++; 
     } 
    } 

    echo '<table border="0" class="mytable">'; 

     if ($table3['header']) { 

      echo '<thead>'; 

       echo '<tr>'; 

        foreach ($table3['header'] as $t3) { 

         echo '<th class="tdtitle">'; 
          echo $t3['c']; 
         echo '</th>'; 
        } 

       echo '</tr>'; 

      echo '</thead>'; 
     } 

     echo '<tbody>'; 

      $first_td_bottomchart = 0; 

      foreach ($table3['body'] as $tr3) { 

       echo '<tr>'; 

        foreach ($tr3 as $td3) { 

         if(($first_td_bottomchart %8) == 0) { 
          echo '<td class="lefttitle bold tdtitle">' . $td3['c'] . '</td>'; 
         } elseif(!empty($td3['c'])) { 
          echo '<td rowspan="4">'; 
           echo '<div class="progress progress-striped"><div class="bottom_chart progress-bar progress-bar-danger" role="progressbar" aria-valuenow="' . $td3['c'] . '" aria-valuemin="0" aria-valuemax="100" style="width: 0%"></div></div>'; 
           echo $td3['c']; 
          echo '</td>'; 
         } 
         $first_td_bottomchart++; 
        } ?> 

       <?php echo '</tr>'; 

      } 

     echo '</tbody>'; 

    echo '</table>'; 

} 

?> 
+0

Возможно, вы можете это переусердствовать. Просто отслеживайте, сколько строк вы отредактировали - если это 8, затем повторно установите счетчик и распечатайте код, чтобы закрыть последнюю таблицу и запустить новую. – andrewsi

+2

Stackoverflow предназначен для изучения кода или помощи при проблемах, с которыми вы не можете найти решение, а не для того, чтобы другие люди пишут ваш код для вас. Комментарий Эндрюси является достаточным и адекватным ответом на это. Я не модератор, но считаю, что неуместно использовать щедрости для подкупа людей для кода. – starshine531

ответ

1

ИТАК, если мы предположим, что $ Таблица3 [ «тело»] имеет то же количество элементов, как и $ Таблица3 [ «заголовок»] ваш код в основном начинается строительство штрафа заголовка таблицы, но когда мы добираемся до тела в течение первых 8 циклов, у вас есть таблица, создающая rowspans?

Должно ли это не быть colspans? https://plnkr.co/edit/B31QPDamCDHiQANAYpdx?p=preview

<table width="100%" border="1" cellspacing="0" cellpadding="0"> 
<thead> 
     <th>1 Rowspan Table</th> 
     <th>2</th> 
     <th>3</th> 
     <th>4</th> 
     <th>5</th> 
     <th>6</th> 
     <th>7</th> 
     <th>8</th> 
     <th>9</th> 
    </thead> 
<tbody> 
<!-- **Invalid table structure and markup:** --> 
<tr> 
    <td class="lefttitle bold tdtitle">$td3['c']</td> 
    <td rowspan="4">&nbsp;</td> 
    <td rowspan="4">&nbsp;</td> 
    <td rowspan="4">&nbsp;</td> 
    <td rowspan="4">&nbsp;</td> 
    <td rowspan="4">&nbsp;</td> 
    <td rowspan="4">&nbsp;</td> 
    <td rowspan="4">&nbsp;</td> 
</tr> 
<!-- **VALID table structure and markup:** --> 
<tr> 
    <td class="lefttitle bold tdtitle">$td3['c']</td> 
    <td colspan="4">&nbsp;</td> 
    <td colspan="4">&nbsp;</td> 
</tr> 

Также после 8% той же строке ведет с RowSpan в зависимости от количества элементов в $ TR3 как $ Td3. (если это согласуется с количеством элементов в $ table3 ['header'];)

Другая проблема заключается в том, что если по какой-либо причине $ td3 ['c'] пуста, вся структура таблицы выбрасывается из окна ,

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

Я бы только зациклил на $ table3 ['header'] один раз и построил вашу логику таблицы внутри этого цикла, чтобы предотвратить путаницу и несогласованные подсчеты элементов.

Непонятно, какие ячейки вы хотите охватить, в каких ячейках: не могли бы вы объединить ячейки, которые вы хотите на листе Excel, в качестве примера, и приложите это к своему вопросу. Тогда я могу предоставить вам более простое решение.

Смежные вопросы