Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: немогу вывести данные
 
 автор: mabelrod   (15.02.2012 в 14:15)   письмо автору
 
 

У меня есть код, его надо вывести вот так: что бы внутри 1го <ul> было по 3 <li>
На данный момент у меня выводит оп 3, но в конце 1 пустой <li>, немогу его убрать


                <li>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-1.jpg" alt="" width="280" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-2.jpg" alt="" width="260" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-3.jpg" alt="" width="260" height="66" /></a>
                </li>
                <li>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-1.jpg" alt="" width="280" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-2.jpg" alt="" width="260" height="66" /></a>
                </li>



            <ul>
                <li>
                    <?foreach($arResult['PROPERTIES']['PR_FOTO']['VALUE'] as $item_pic):$i++?> 
                        <a href="#"><img src="<?=CFile::GetPath($item_pic);?>" alt="<?=$arResult['NAME'];?>" width="280" height="66"></a>
                    <?if(!is_float($i/3)):?>
                        </li><li>
                    <?endif;?>
                    <?endforeach;?>
                </li>
</ul>

  Ответить  
 
 автор: Киналь   (15.02.2012 в 14:32)   письмо автору
 
   для: mabelrod   (15.02.2012 в 14:15)
 

endforeach?! Вас к нам на машине времени занесло?=)

Занесите в отдельную переменную общее количество изображений и добавьте проверку:

if (!is_float($i/3) && $i < $total_img_count - 3)

  Ответить  
 
 автор: mabelrod   (15.02.2012 в 14:42)   письмо автору
 
   для: Киналь   (15.02.2012 в 14:32)
 

1) А как правильно писать если не использовать endforeach ?

2) я картинки вывожу в цикле - то есть я незнаю сколько их всего, то есть мне надо еще перед этим написать 1 запрос на узнать сколько их всего ? я думаю это перебор ... может есть вариант попроще ?

  Ответить  
 
 автор: Sfinks   (15.02.2012 в 15:10)   письмо автору
 
   для: mabelrod   (15.02.2012 в 14:42)
 

> что бы внутри 1го <ul> было по 3 <li>
Может все-таки внутри каждого <li></li> по 3 <a></a>? По крайней мере ваш код делает именно это.

> 1) А как правильно писать если не использовать endforeach
А вот у меня к этому нет вопросов. Можно с endif и с endforeach. Больше интересно, зачем писать ПХП внутри ХТМЛ, а не наоборот, когда пхп в каждой строке??? Лично я пока не переформатировал ваш код, с большим трудом понимал что он делает.

> 2) я картинки вывожу в цикле - то есть я незнаю сколько их всего, то есть мне надо еще перед этим написать 1 запрос на узнать сколько их всего ? я думаю это перебор ... может есть вариант попроще ?
во-первых запрос
$co = count($arResult['PROPERTIES']['PR_FOTO']['VALUE']);
-это не перебор, а 1/1000000000 доля секунды.
во-вторых, на сколько я понимаю, лишний <li> добавляется только если количество картинок кратное 3. Верно? Значит нужно просто немного по другому организовать счетчик. Сек.....

  Ответить  
 
 автор: Киналь   (15.02.2012 в 15:16)   письмо автору
 
   для: mabelrod   (15.02.2012 в 14:42)
 

>1) А как правильно писать если не использовать endforeach ?

Да нет, всё правильно, просто это конструкция ещё, если не ошибаюсь, из PHP 3. Хотя довольно удобная, нельзя не признать)

  Ответить  
 
 автор: Sfinks   (15.02.2012 в 15:20)   письмо автору
 
   для: mabelrod   (15.02.2012 в 14:42)
 

можно так:
<?php
  
echo "<ul><li>";
  
$i 0;
  foreach(
$arResult['PROPERTIES']['PR_FOTO']['VALUE'] as $item_pic){
    if(!
is_float($i/3) && $i 0) echo '</li><li>';
    
$i++;
    echo 
'<a href="#"><img src="'.CFile::GetPath($item_pic).'" alt="'.$arResult['NAME'].'" width="280" height="66"></a>';
  }
  echo 
"</li></ul>";
?>

  Ответить  
 
 автор: mabelrod   (15.02.2012 в 16:01)   письмо автору
 
   для: Sfinks   (15.02.2012 в 15:20)
 

Люди сказали что надо так, в фаербаге вроде вссе ок, но визуально ломается, ищу причину далее.


        <div class="project-slider-content">
            <ul>
                <li>
                    <?foreach($arResult['PROPERTIES']['PR_FOTO']['VALUE'] as $item_pic):$i++?>
                        <a href="#"><img src="<?=CFile::GetPath($item_pic);?>" alt="<?=$arResult['NAME'];?>" width="280" height="66"></a>
                    <?if( !is_float($i/3) && $arResult["PROPERTIES"]["PR_FOTO"]["VALUE"][$i]):?></li><li><?endif;?>
                    <?endforeach;?>
                </li>
                <!--
                <li>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-1.jpg" alt="" width="280" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-2.jpg" alt="" width="260" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-3.jpg" alt="" width="260" height="66" /></a>
                </li>
                <li>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-1.jpg" alt="" width="280" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-2.jpg" alt="" width="260" height="66" /></a>
                    <a href="#"><img src="<?=SITE_TEMPLATE_PATH?>/files/detail-3.jpg" alt="" width="260" height="66" /></a>
                </li>
                -->
            </ul>
        </div>

  Ответить  
 
 автор: Sfinks   (15.02.2012 в 17:52)   письмо автору
 
   для: mabelrod   (15.02.2012 в 16:01)
 

> Люди сказали что надо так
Че за люди?

> фаербаге вроде вссе ок
Кто такой?

> но визуально ломается
А че ж ЛЮДИ не помогли до конца?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования