Уважаемые. Нужна помощь. Только начинаю осваивать PHP и пытаюсь сделать чередование.. Т.е. надо сделать так чтобы было: HTML: <div class="r-1"></div> <div class="r-2"></div> <div class="r-1"></div> <div class="r-2"></div> В начале я решила что надо вот такое PHP: <?php if (!empty($data)) { ?> <?php $i = 0; $counts = count($data); ?> ........ <?php } ?> Т.е. мы задаем переменные для счета. Затем видимо надо использовать foreach Но как реализовать сам счет не понимаю.
Сделала вот так PHP: <?php for($i=0;$i<10;$i++) {echo '<div class="r_'.($i%2==0?'1':'2').'"> <div class="image"><img alt="" src='.$value->image.' /></div> </div>'; } ?>
Не то получается. Блоков тут получается 10, а надо чтобы было столько сколько, например, отзывов на сайте 5, 6, 25. Как вот так это организовать?
@swear, к примеру для table будет так Код (CSS): .table > tbody > tr:nth-of-type(2n+1) { background-color: #f9f9f9; }
Через CSS не вариант, мне надо чтобы на всех браузерах работало. На CSS тамвсе элементарно. Код (CSS): r:nth-of-type(2n+1) { float: left; } r:nth-of-type(2n) { float: right; }
В эксплорере ниже 9, в андроиде ниже 2,1, в ios ниже 2. В общем в CSS3 оно работает. мне надо чтобы и на древних компах все было идеально. --- Добавлено --- В общем проблема с чередованием в следующем. Сам цикл чередования отрабатывает. НО этот цикл должен быть выведен внутри массива. Я предположила так. Но выводит интересно 2 первых новости 2 раза, 2 вторых новости 2 раза и все. PHP: <?php if (!empty($data)) { ?> <?php $i = 0; $counts = count($data); ?> <?php foreach ($data as $key => $value) { ?> <div class="news"> <div class="row"> <?php for( $i=0; $i < $counts; $i++) {echo '<div class="r_'. ($i%2==0?'1':'2') .'"> ';?> <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> <div class="text"><?php echo $value->intro_text; ?></div> <div class="autor"><?php echo $value->author; ?></div> <?php echo '</div> '; }?> </div> </div> <?php } ?> <?php } ?> А всего-то их там как минимум 15.
В общем как-то вот так получилось, но оно работает, но не так как надо PHP: <?php if (!empty($data)) { ?> <?php $i = 0; $counts = count($data); ?> <?php foreach ($data as $key => $value) { ?> <div class="news"> <div class="row"> <?php //for( $i=0; $i < $counts; $i++) { echo '<div class="r_'. ($i%2==0?'1':'2') .'"> ';?> <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> <div class="text"><?php echo $value->intro_text; ?></div> <div class="autor"><?php echo $value->author; ?></div> <?php echo '</div> ';}?> </div> </div> <?php $i++; ?> <?php } ?> <?php } ?> --- Добавлено --- Foreach выводит массив с данными, а затем оно должно оформляться чередованием классов r_1 и r_2 Вот этот вот "шедевр" выводит только 2 новости при чем 2 вторые новости, т.е. не 1,2 а 3 и 4
$i используется и в PHP: <?php $i = 0; $counts = count($data); ?> и тут PHP: for( $i=0; $i < $counts; $i++) попробуйте где-то поменять $i на допустим $ii или на любую другую. --- Добавлено --- например PHP: for( $ii=0; $ii < $counts; $ii++)
поменяла $i=0 на $l = 0, в результате выводит так же 3 и 4 новость, но 2 раза третью и 2 раза четвертую )))
PHP: { echo '<div class="r_'. ($ii%2==0?'1':'2') .'"> ';?> <div class="image"><img alt="" src="<?php echo $value->image; ?>" /></div> <div class="text"><?php echo $value->intro_text; ?></div> <div class="autor"><?php echo $value->author; ?></div> <?php echo '</div> ';}