问题描述
|
大家好,
一直在处理几行代码,但我似乎无法使其正常工作。基本上,我想通过while循环在偶数和奇数表样式之间进行切换。我究竟做错了什么?
似乎每次都只循环遍历if()。
谢谢!
<?PHP
include \'connect.PHP\';
echo \"<table id=\'hor-zebra\'>\";
$i = 0;
while($row = MysqL_fetch_array($result))
{
if(i%2 == 0)
{
echo \"<tr class=\'even\'>\";
echo \"<td>\" . $row[\'departure\'] .\" ✈ \". $row[\'destination\'] . \"</td>\";
echo \"</tr>\";
}
else
{
echo \"<tr>\";
echo \"<td>\" . $row[\'departure\'] .\" ✈ \". $row[\'destination\'] . \"</td>\";
echo \"</tr>\";
}
$i++;
}
echo \"</table>\";
MysqL_close($con);
?>
解决方法
您的
if
状况有错字。它应该是:
if($i%2 == 0)
您还可以通过仅将类名称分配给if和else块中的变量来节省一些击键:
if($i%2 == 0)
{
$class = \'even\';
}
else
{
$class = \'odd\';
}
echo \"<tr class=\'$class\'>\";
echo \"<td>\" . $row[\'departure\'] .\" ✈ \". $row[\'destination\'] . \"</td>\";
echo \"</tr>\";
,您还可以使用css .nth-child属性
tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}
按照W3示例
,CSS-Tricks发布了一个非常优雅的解决方案。
它看起来像超级还原主义者的C ++魔术。本质上,他们这样做:
<div class=\"example-class<?php echo ($xyz++%2); ?>\">
这适用于任何循环:for,foreach和while。
修改整数会为您提供更大的步长,即3之后重设,4之后重设,依此类推。
CSS-技巧最终解决方案
,您忘记了\'$ \'
if(i%2 == 0)
应该
if(($i % 2) == 0)
,替换此行...
if(i%2 == 0)
...具有以下内容:
if($i % 2 == 0)
,这可以进一步改善。
foreach($post_array as $array => $row) {
$class = ($array %2 == 0) ? \'even\' : \'odd\';
echo \'
<tr class=\"\'.$class.\'\">
<td>\' .$row[\'title\']. \'</td>
<td>\' .$row[\'content\']. \'</td>
<td>\' .$row[\'catid\']. \'</td>
<td>\' .$row[\'id\']. \'</td>
<td>\' . \'<form action=\"edit.php?id=\'.$row[\'id\'].\'\" method=\"post\">
<input type=\"hidden\" name=\"id\" id=\"id\" value=\"\'.$row[\'id\'].\'\" />
<input type=\"submit\" name=\"edit\" value=\"Edit\" />
</form>\' . \'</td>
<td>\' . \'<form action=\"\" method=\"post\">
<input type=\"hidden\" name=\"id\" id=\"id\" value=\"\'.$row[\'id\'].\'\" />
<input type=\"submit\" name=\"delete\" value=\"Delete\" />
</form>\' . \'</td>
</tr>\';
}