2012-03-08 130 views
-1

尝试显示从PHP和XML的HTML表,试图在主要为样式表交替基本的行和奇数时得到错误。xml到PHP表交替行颜色

foreach($bookdata as $book) // loop through our books 
{ 
$i = 0; 
     if($i%2 == 0) 
    { 
     $class = 'even'; 
    } 
    else 
    { 
     $class = 'odd'; 
    } 

    { 


     echo <<<EOF 
     <tbody> 
    <tr class='$class'> 
       <td>{$book->date} </td> 

       <td><a href='http://www.website.com{$book->dataNo}.html'>{$book->Name}</td> 
       <td><a href='http://www.website.com/-{$book->authorcodeNo}.html'>{$book->author}</td> 


     </tr> 
    } 
     $i++; 
    } 


EOF; 
} 
echo '</tbody>'; 
echo '</table>'; 

任何帮助最欢迎的

+1

定义你的$ i = 0; out of loop – 2012-03-08 07:33:08

+0

另外,看看三元操作符来清理你的交替行... http://davidwalsh.name/php-shorthand-if-else-ternary-operators – 2012-03-08 07:37:02

回答

0

您$重新声明我的你的for循环,所以它永远不会实际增加,只是得到重置为0,每一次里面。另外,由于没有足够的代码来查看它,所以我不确定你的花括号是什么,只要我可以告诉...首先将变量声明移到for循环之外!

1
 

$i = 0; 
foreach($bookdata as $book) // loop through our books 
{ 
... 
... 
//and at end of foreach 
$i++; 
 
0

您正在重置的$i0在每个循环。

删除

$i = 0; 

从您的代码。而我之前没有注意到这一点,但EOF放错了位置。这是一个完整的可行的解决方案

foreach($bookdata as $book) // loop through our books 
{ 
    if($i%2 == 0) { $class = 'even'; } 
    else { $class = 'odd'; } 
    echo <<<EOF 
     <tbody> 
      <tr class='$class'> 
       <td>{$book->date} </td> 
       <td><a href='http://www.website.com{$book->dataNo}.html'>{$book->Name}</td> 
       <td><a href='http://www.website.com/-{$book->authorcodeNo}.html'>{$book->author}</td> 
      </tr> 
EOF; 
     $i++; 
} 
+0

removed si = 0;并纠正了这个EOF; } $ i ++; } echo''; echo'';作品 – bignow23 2012-03-08 07:46:14

+0

@ bignow23,如果我的解决方案有效。请接受它作为答案。它的答案左侧带有“嘀嗒”的图标。 ;) – Starx 2012-03-08 08:00:35

0

尝试把$i=0foreach循环。