首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过PHP使用CSV数据的表中的行样式

通过PHP使用CSV数据的表中的行样式
EN

Stack Overflow用户
提问于 2009-11-18 04:21:44
回答 3查看 2.3K关注 0票数 2

我一直在编写这个简单的代码,它将CSV文件放入一个很好的表中。但是由于数据是导入的,所以对奇怪的行进行样式设计是一件非常困难的事情。

我所需要的只是一个处理某些行的方法,这样我就可以制作一个类似于“斑马”的背景,并将特定的数据放在另一种文本样式中。

没有人有主意吗?非常感谢!

代码语言:javascript
运行
复制
<?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);

?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-18 15:15:18

有一个名为jQueryTableSorter插件,它允许斑马风格的着色,还增加了点击排序行的能力。它很容易集成。

这不是一个纯粹的PHP解决方案,但在大多数情况下,您将不得不对CSS和JavaScript进行编码,因此这最终会节省大量时间,并防止您将其硬编码到您的PHP逻辑中。

首先,将文档的<head>中的脚本链接起来:

代码语言:javascript
运行
复制
<script type="text/javascript" src="/path/to/jquery-latest.js"></script> 
<script type="text/javascript" src="/path/to/jquery.tablesorter.js"></script> 

然后确保表中有<thead><tbody>元素:

代码语言:javascript
运行
复制
<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启用它:

代码语言:javascript
运行
复制
$(document).ready(function() 
    { 
        $("#myTable").tablesorter({ widgets: ['zebra'] }); 
    } 
);
票数 1
EN

Stack Overflow用户

发布于 2009-11-18 04:24:47

关于

代码语言:javascript
运行
复制
print("<TR class='" . ($c%2 == 0?'even':'odd')."'>");

在您可以添加正确的CSS之后

代码语言:javascript
运行
复制
.even {
  background-color: #aaaaaa; 
}

.odd {
  background-color: #fffff; 
}
票数 1
EN

Stack Overflow用户

发布于 2009-11-18 04:36:18

使用这样的方法:

代码语言:javascript
运行
复制
<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); ?>

通过以下方式:

代码语言:javascript
运行
复制
tr.odd td { background: #CCC; }

或者使用短标签(我个人更喜欢):

代码语言:javascript
运行
复制
<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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1753616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档