我想按照以下条件应用css类

时间:2014-10-13 05:03:23

标签: php css loops

我想按照以下条件应用css类,但在应用此代码后,每个内容重复8次,如果我在div之前完成循环,则css类不会被应用。

       
    <?php $size=count($Spacategories);          
   for($i=0;$i<8;$i++){
    if($i==0 || $i==5){ ?>
    <li class="valign">
    <?php } elseif($i==1 || $i==7) { ?>
    <li class="lalign">
    <?php  } elseif($i==2 || $i==6) { ?>
    <li class="talign">
    <?php } else { ?>
    <li class="ralign">
    <?php } ?>

        <div class="image">
            <img src="<?php echo $spacategory['thumb']; ?>" title="<?php echo $spacategory['name']; ?>" alt="<?php echo $spacategory['name']; ?>" />

        </div>
       <div class="text">
            <h3><?php echo $spacategory['name']; ?></h3>
            <p><?php echo substr($spacategory['description'],0,150); ?></p>
            <a href="<?php echo $spacategory['href']; ?>" class="learmmore"><?php echo $text_view_more; ?></a>
        </div>   
       </li>   
      <?php  } } ?>

2 个答案:

答案 0 :(得分:0)

更改

的所有实例
$spacategory 

$Spacategories[$i]

这将解决它。

另外,我没有看到填充$ text_view_more的内容。您应该将其更改为$ Spacategories中的某些数据点吗?

最后,您似乎需要根据类别数进行循环,因此请更改

for($i=0;$i<8;$i++){

for($i=0;$i<$size;$i++){

答案 1 :(得分:0)

在您的代码中,$spacategory不是$spacategories中每个迭代中索引为$i的项目。您应该已经开始for

$spacategory = $spacategories[$i];

或改为使用foreach

<?php
$classesIndexMap = array(
    0 => 'valign',
    1 => 'lalign',
    2 => 'talign',
    5 => 'valign',
    6 => 'talign',
    7 => 'lalign',
);
$html_view_more = htmlspecialchars($text_view_more, ENT_NOQUOTES, 'UTF-8');
?>     
<?php foreach($spacategories as $i => $spacategory) : ?>
<li class="<?= isset($spacategory[$i]) ? $spacategory[$i] : 'ralign' ?>">
    <div class="image">
        <img src="<?= htmlspecialchars($spacategory['thumb'], ENT_QUOTES, 'UTF-8') ?>"
             title="<?= htmlspecialchars($spacategory['name'], ENT_QUOTES, 'UTF-8') ?>"
             alt="<?= htmlspecialchars($spacategory['name'], ENT_QUOTES, 'UTF-8') ?>" />

    </div>
    <div class="text">
        <h3><?= htmlspecialchars($spacategory['name'], ENT_NOQUOTES, 'UTF-8') ?></h3>
        <p><?= substr($spacategory['description'],0,150); ?></p>
        <a href="<?= htmlspecialchars($spacategory['href'], ENT_QUOTES, 'UTF-8'); ?>"
           class="learmmore"><?= $html_view_more ?></a>
    </div>   
</li>
<?php endforeach; ?>