Установить два класса из массива - PullRequest
0 голосов
/ 07 июня 2010

Я хочу изменить классы на каждом третьем выводе из запроса:

    <?php
$style_classes = array('box','box','box no_right_margin');
$style_index = 0;
?>

Я установил это на div:

<div <?php $k = $style_index%4; echo "class=$style_classes[$k]"; $style_index++; ?>>

В третьем разделе я хочу, чтобы класс выглядел так:

<div class="box no_right_margin">

Прямо сейчас это выглядит так:

 <div class="box" no_right_margin>

Ответы [ 2 ]

0 голосов
/ 07 июня 2010

Вы должны использовать% 3 вместо% 4, так что вы на самом деле получаете индексы 0, 1 и 2.
И вам нужны правильные кавычки в выводе HTML:

<?php   echo '<div class="' . $style_classes[$k++ % 3] . '">';   ?>

В противном случае ваш браузер (Safari?), Вероятно, исправил бы это с "в неправильном месте, как показано в вашем примере. Кстати, лучше использовать дефисы для имен классов CSS, а не подчеркивания (в отличие от идентификаторов).

0 голосов
/ 07 июня 2010

Вам необходимо заключить имена классов в кавычки.Ваш скрипт на самом деле выводит class=box no_right_margin.(Я думаю, что пример, который вы привели в качестве текущего вывода, - это не то, что посылает скрипт, а вид DOM из чего-то вроде Firebug, который показывает браузеру, что он видит только первый класс в списке)

Чтобы вы могли сделать это:

<div class="<?php $k = $style_index%4; echo $style_classes[$k]; $style_index++; ?>">

или даже

<div class="<?php echo $style_classes[$style_index++ % 4]; ?>">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...