слайдер изображения не работает должным образом для no_image - PullRequest
0 голосов
/ 18 июня 2020

У меня есть слайдер с изображениями, загруженными пользователем. Каждый пользователь должен загрузить не менее 1 изображения и до 4-х по своему усмотрению. Загрузка изображения 1 обязательна. Остальное, какой пользователь не загрузил, сохранить как файл no_image.jpg.

Если кто-то закачивает 1 изображение, оно повторяет image1 2 раза. он работает нормально, и то, как он отображается, в порядке. Проблема в том, что если кто-то загружает 2 или 3 изображения, некоторые изображения повторяются 2 раза. Это немного странно.

Я не очень разбираюсь в кодировании. Пожалуйста, помогите мне решить эту проблему и отлично с этим работать. Ваша помощь очень ценится.

Отредактировано: код image1 не отображается здесь должным образом. Я не знаю проблемы. это просто показывает изображение1. Нет, если там l oop.

<div class="product" >
<div class="thumbnail"><img src="<?php echo site_url(); ?>assets/images/adsimages/<?php
                                        $a = 'no_image.jpg';
                                        $b = $post['image2'];
                                        $c = $post['image3'];
                                        $d = $post['image4'];

                                        if ($b != $a) {
                                            echo $post['image2'];
                                        } elseif ($c != $a){
                                            echo $post['image3'];
                                        }elseif ($d != $a){
                                            echo $post['image4'];
                                        }else echo $post['image1']
                                        ?>" ></div>
</div>
<div class="product" >
<div class="thumbnail"><img src="<?php echo site_url(); ?>assets/images/adsimages/<?php
                                        $a = 'no_image.jpg';

                                        $c = $post['image3'];
                                        $d = $post['image4'];

                                        if ($c != $a){
                                            echo $post['image3'];
                                        }elseif ($d != $a){
                                            echo $post['image4'];
                                        }else echo $post['image1']
                                        ?>" ></div>
 </div>
 <div class="product" >
 <div class="thumbnail"><img src="<?php echo site_url(); ?>assets/images/adsimages/<?php
                                        $a = 'no_image.jpg';
                                        $d = $post['image4'];
                                            if ($d != $a){
                                            echo $post['image4'];
                                        }else echo $post['image1']
                                        ?>"></div>
                                </div>

1 Ответ

0 голосов
/ 18 июня 2020

Вы можете использовать foreach, чтобы показать дату и предотвратить повторение кода. Для вашей проблемы вы можете взять пустой array и заполнить его на каждом iteration и проверить, есть ли повторяющееся значение, если нет, то показать изображение, если да, то нет.

Я написал возможное решение для вашего кода, комментарии упоминаются в самом коде. Посмотрим, поможет ли это вам.

<?php 
    $imageArr = array(); // make an empty array

    foreach($post as $key => $singleImage){ // loop all the images 

        // if( !in_array($singleImage, $imageArr) ){ // check if current value already exists in array ie no_image 
        if( $key != 'id' && $singleImage != 'no_image.jpg' ) ){ // check if key is not id and its value is not no_image.jpg

            // $imageArr[] = $singleImage; // push the current value in array
?>
            <!-- Your view code here -->
            <div class="product" >
                <div class="thumbnail">
                    <img src="<?php echo site_url(); ?>assets/images/adsimages/$singleImage; ?>" /> 
                </div>
            </div>
<?php 
        }
    } 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...