CSS таблицы в CakePHP - PullRequest
       2

CSS таблицы в CakePHP

1 голос
/ 17 сентября 2011

У меня есть ситуация, я хочу иметь 3 слова в 1 табличных данных.

Например, один, два, три

Я хочу, чтобы четыре отображались ниже.

Например.

  1. Один, два, три,
  2. четыре, пять, шесть,
  3. семь, восемь, девять,
  4. и так далее ..

Как мне добиться этого с помощью таблицы.Я пытаюсь включить это в CakePHP.Я использую для цикла, чтобы перечислить номера вниз.

<table>
    <tbody>
        <tr>  

            <?php foreach ($professionalPassion as $us): ?>


                <td>
        <legend><?php echo $us['PassionsUser']['passion_tag'] ?></legend>

        Type: <?php echo $us['PassionsUser']['type'] ?><br/>                                 
        Description: <?php echo $us['PassionsUser']['description'] ?><br/> 
        <?php echo $this->Html->link(__('Edit', true), array('controller' => 'PassionsUsers', 'action' => 'edit_passion', $us['PassionsUser']['id'])); ?> | 
        <?php echo $this->Html->link(__('Delete', true), array('controller' => 'PassionsUsers', 'action' => 'delete', $us['PassionsUser']['id'])); ?>

    <?php endforeach; ?>
</td>
</tr>

</tbody>
</table> 

Ответы [ 3 ]

2 голосов
/ 17 сентября 2011
<table>
  <tbody>
     <?php foreach(array_chunk($pp, 3) as $us) : ?>
     <tr>                                      
        <td><?php echo implode(',', $us)?></td>
    </tr>
    <?php endforeach; ?>    
  </tbody>
</table> 
0 голосов
/ 17 сентября 2011

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

function auto_table($cells, $cols, $class = '') {
  $table = '<table' . (empty($class) ? '' : ' class="' . $class . '"') .'><tbody><tr>';

  $current_col = 1;
  foreach ($cells as $cell) {
    // Add the cell
    $table .= "<td class=\"col-$current_col\">$cell</td>";

    if ($current_col % $cols == 0) {
      $table .= '</tr><tr>';
      $current_col = 1;
    }
    else {
      $current_col++;
    }
  }

  // Clear up
  $remaining = $cols - ($current_col == 1 ? 4 : ($current_col - 1));
  for ($i = 0; $i < $remaining; $i++) {
    $table .= '<td class="col-' . $current_col++ . '">&nbsp;</td>';
  }

  $table .= '</tr></tbody></table>';

  return $table;
}

$cells будет содержать массив данных, $cols количество столбцов для таблицы и $class любой класс, добавляемый в таблицу.

UPDATE

Интегрировано с вашим кодом:

$cells = array();
foreach ($professionalPassion as $us) {
  $cell = 'Type: ' . $us['PassionsUser']['type'] . '<br />';
  $cell .= 'Description: ' . $us['PassionsUser']['description'] . '<br />';
  $cell .= $this->Html->link(__('Edit', true), array('controller' => 'PassionsUsers', 'action' => 'edit_passion', $us['PassionsUser']['id']));
  $cell .= ' | ';
  $cell .= $this->Html->link(__('Delete', true), array('controller' => 'PassionsUsers', 'action' => 'delete', $us['PassionsUser']['id']));
  $cells[] = $cell;
}

$html_table = auto_table($cells, 3);
0 голосов
/ 17 сентября 2011

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

Сначала разделите содержимое на ячейки.

$table = array();
$index = 0;
foreach( $pp as $us ) {
    $table[ floor( $index / 3 ) ][ $index % 3 ] = $us;
    $index++;
}

Затем просмотрите таблицу, используя $html->tableCells().

echo '<table>';
echo $html->tableCells( $table );
echo '</table>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...