Стилизация строк в таблице, которая использует данные CSV через PHP - PullRequest
2 голосов
/ 18 ноября 2009

Я работал над этим простым кодом, который помещает CSV-файл в хорошую таблицу. Но поскольку данные импортируются, стилизация ODD-строк является довольно сложной задачей.

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

Есть ли у айнона идея? Большое спасибо!

<?php
print("<TABLE>\n");
$row = 0;
$handle = fopen("test_file.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
   $num = count($data);
   for ($c=0; $c <= $row; $c++)
{
    print("<TR>");
    print("<TD>".$data[0]." </td>");
    print("<TD>".$data[1]." </td>");
    print("<TD>".$data[2]." </td>");
    print("<TD>".$data[3]." </td>");
    print("<TD>".$data[4]." </td>");
    print("</TR>"); 
}
}
fclose($handle);

?>

Ответы [ 3 ]

1 голос
/ 18 ноября 2009

Используйте что-то вроде:

<table>
<tbody>
<?php
$row = 0;
$handle = fopen('test_file.csv', 'r');
while ($data = fgetcsv($handle, 1000, ',')):
  $class = ++$row & 1 == 1 ? ' class="odd"' : '';
  $num = count($data);
?>
<tr<?php echo $class; ?>>
<?php for ($c=0; $c <= $num; $c++) {
  <td><?php echo $data[$c]; ?></td>
<?php endfor; ?>
</tr>
<?php endwhile; ?>
</tbody>
</table>
<?php fclose($handle); ?>

с:

tr.odd td { background: #CCC; }

Или с короткими метками (которые я лично предпочитаю):

<table>
<tbody>
<?
$row = 0;
$handle = fopen('test_file.csv', 'r');
while ($data = fgetcsv($handle, 1000, ',')):
  $class = ++$row & 1 == 1 ? ' class="odd"' : '';
  $num = count($data);
?>
<tr<?= $class ?>>
<? for ($c=0; $c <= $num; $c++) {
  <td><?= $data[$c]; ?></td>
<? endfor; ?>
</tr>
<? endwhile; ?>
</tbody>
</table>
<? fclose($handle); ?>
1 голос
/ 18 ноября 2009

Существует плагин jQuery с именем TableSorter , который позволяет раскрашивать в стиле зебры, а также добавляет возможность сортировки строк по щелчку. Это очень легко интегрировать.

Это не чисто PHP-решение, но в большинстве случаев вам все равно придется кодировать CSS и JavaScript, так что это экономит много времени и не позволяет вам жестко программировать эти вещи. в вашу логику PHP.

Сначала вы связываете скрипты в <head> вашего документа:

<script type="text/javascript" src="/path/to/jquery-latest.js"></script> 
<script type="text/javascript" src="/path/to/jquery.tablesorter.js"></script> 

Затем убедитесь, что на вашем столе есть элементы <thead> и <tbody>:

<table id="myTable"> 
<thead> 
<tr> 
    <th>Last Name</th> 
    <th>First Name</th> 
    <th>Email</th> 
    <th>Due</th> 
    <th>Web Site</th> 
</tr> 
</thead> 
<tbody> 
<tr>
    <td>...
...
</tbody>
</table>

Завершите, затем включите его с помощью jQuery:

$(document).ready(function() 
    { 
        $("#myTable").tablesorter({ widgets: ['zebra'] }); 
    } 
);
1 голос
/ 18 ноября 2009

а как же

print("<TR class='" . ($c%2 == 0?'even':'odd')."'>");

после того, как вы можете добавить правильный CSS

.even {
  background-color: #aaaaaa; 
}

.odd {
  background-color: #fffff; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...