Задать вопрос
Oposum
@Oposum

Почему данные переменной в цикле не везде одинаковы?

Привет всем. Столкнулся с непонятной ситуацией:
есть цикл <?php foreach($hits as $hit): ?>
и естественно
<?php endforeach;?>
в этом цикле я беру переменную $hit и вставляю там, где необходимо.
Но работает это не во всех местах. В некоторых местах переменная записывает только последний элемент массива, и получается, что во всех отображаемых элементах на странице присутствует информация из последнего элемента массива. Даже не знаю почему? Не вижу вообще обьяснения, иначе как восстанние против меня машин...
<div class="row isotope-grid">
    <?php foreach($hits as $hit): ?>

    <div class="col-sm-6 col-md-4 col-lg-3 p-b-35 isotope-item boy">
        <div class="block2">
            <div class="block2-pic hov-img0">
                <?= Html::img("@web/images/{$hit->img}", ['alt' => $hit->name])?>
                    <a href="" class="block2-btn flex-c-m stext-103 cl2 size-102 bg0 bor2 hov-btn1 p-lr-15 trans-04 js-show-modal1">
 						Quick View
 					</a>
            </div>
            <div class="block2-txt flex-w flex-t p-t-14">
                <div class="block2-txt-child1 flex-col-l ">
                    <a href="" class="stext-104 cl4 hov-cl1 trans-04 js-name-b2 p-b-6">
                        <?= $hit->name?>

                    </a>
                    <span class="stext-105 cl3">
 							<?= $hit->price?> грн
 							
 						</span>
                </div>
                <div class="block2-txt-child2 flex-r p-t-3">
                    <a href="" class="btn-addwish-b2 dis-block pos-relative js-addwish-b2">
 							<i class="zmdi zmdi-phone" style="font-size: 30px"></i>
 						</a>
                </div>
            </div>
        </div>
    </div>
    <!-- восстание против меня -->
    <div class="wrap-modal1 js-modal1 p-t-60 p-b-20">
        <div class="overlay-modal1 js-hide-modal1"></div>
        <div class="container">
            <div class="bg0 p-t-60 p-b-30 p-lr-15-lg how-pos3-parent">
                <button class="how-pos3 hov3 trans-04 js-hide-modal1">
 						<img src="/images/icons/icon-close.png" alt="CLOSE">
 					</button>
                <div class="row">
                    <div class="col-md-6 col-lg-7 p-b-30">
                        <div class="p-l-25 p-r-30 p-lr-0-lg">
                            <div class="wrap-slick3 flex-sb flex-w">
                                <div class="wrap-slick3-dots"></div>
                                <div class="wrap-slick3-arrows flex-sb-m flex-w"></div>

                                <div class="slick3 gallery-lb">
                                    <div class="item-slick3" data-thumb="images/detail-01.jpg">
                                        <div class="wrap-pic-w pos-relative">
                                            <!-- изображение тоже из последнего элемента массива -->
                                            <?= Html::img("@web/images/{$hit->img}", ['alt' => $hit->name])?>
                                                <a class="flex-c-m size-108 how-pos1 bor0 fs-16 cl10 bg0 hov-btn3 trans-04" href="images/detail-01.jpg">
 													<i class="fa fa-expand"></i>
 												</a>
                                        </div>
                                    </div>

                                    <div class="item-slick3" data-thumb="images/detail-02.jpg">
                                        <div class="wrap-pic-w pos-relative">
                                            <img src="/images/detail-02.jpg" alt="img-detail">

                                            <a class="flex-c-m size-108 how-pos1 bor0 fs-16 cl10 bg0 hov-btn3 trans-04" href="images/detail-02.jpg">
 													<i class="fa fa-expand"></i>
 												</a>
                                        </div>
                                    </div>

                                    <div class="item-slick3" data-thumb="images/detail-03.jpg">
                                        <div class="wrap-pic-w pos-relative">
                                            <img src="/images/detail-03.jpg" alt="img-detail">

                                            <a class="flex-c-m size-108 how-pos1 bor0 fs-16 cl10 bg0 hov-btn3 trans-04" href="images/detail-03.jpg">
 													<i class="fa fa-expand"></i>
 												</a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-6 col-lg-5 p-b-30">
                        <div class="p-r-50 p-t-5 p-lr-0-lg">
                            <h4 class="mtext-105 cl2  p-b-14">
                                <!-- вот здесь переменная ведет себя против меня -->
                                <?= $hit->name?>
                            </h4>
                            <span class="mtext-106 cl2">
 									$58.79
 								</span>

                            <p class="stext-102 cl3 p-t-23">
                                Тут описание тратататататтаттатт и лабуда
                            </p>
                            <!--  -->
                            <div class="p-t-33">
                                <div class="flex-w flex-r-m p-b-10">
                                    <div class="size-204 flex-w flex-m respon6-next">
                                        <button class="flex-c-m stext-101 cl0 size-101 bg1 bor1 hov-btn1 p-lr-15 trans-04 js-addcart-detail">
 												Add to cart
 											</button>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <?php endforeach;?>
</div>
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
1. Изначально неправильные данные в $hits.
Проверить: print_r.
Исправить: там, где этот массив формируется

2. Из-за css блоки перемешаны.
Проверить: смотреть html в исходном коде страницы.

3. Из-за js данные изменены.
Проверить: смотреть html в исходном коде страницы.

P.S. Чтобы не задавать таких вопросов, научитесь пользоваться xDebug.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы