Неправильные элементы массива PHP в начальной загрузке - PullRequest
0 голосов
/ 22 февраля 2019

Это ссылки на изображения, которые я хочу вставить в загрузочную карусель:

function display_slides() {
    $count = 10;
    $iter = 0;
    $image_links = ['https://i.imgur.com/9wHVhck.jpg', 'https://i.imgur.com/SpBfUZi.jpg', 'https://i.imgur.com/ZqoEU9o.jpg', 'https://i.imgur.com/n2JY9jj.jpg', 'https://i.imgur.com/yD5I5WH.jpg', 'https://i.imgur.com/JKNnuSE.jpg', 'https://i.imgur.com/YwAmPYu.jpg', 'https://i.imgur.com/T7NBjJm.jpg', 'https://i.imgur.com/ujJ3g1k.jpg'];
    while ($iter < $count) {
        if ($iter == 0) {
            $output .='
<div class="carousel-item active">
    <img class="d-block w-100" src="https://i.imgur.com/dCS4tQk.jpg" alt="Background Image">
    <div class="container">
        <div class="carousel-caption">
            <h2>Header</h2>
            <p>Sample text</p>
        </div>
    </div>
</div>
';
        } else {
// print_r($image_links[$iter]);
            $output .='
<div class="carousel-item">
    <img class="d-block w-100 src=' . $image_links[$iter] . ' alt="Background Image">
         <div class="container">
        <div class="carousel-caption">
            <h2>Header</h2>
            <p>Sample text</p>
        </div>
    </div>
</div>
';
        }
        $iter ++;
    }
    return $output;
}

Я хочу ввести ссылки, находящиеся в $ image_links, в тег src img.Первый слайд (в котором ссылка жестко запрограммирована) работает, а остальные слайды не работают. Ссылка на полный php файл Что я здесь не так делаю?

Ответы [ 4 ]

0 голосов
/ 22 февраля 2019

Я немного очистил код и использовал цикл foreach вместо использования итератора.Я настоятельно рекомендую использовать цикл foreach всякий раз, когда вы хотите получить доступ к массиву, так как обычно его гораздо легче читать.Как и предполагали другие, в атрибуте вашего класса также отсутствовала кавычка, которая также была исправлена ​​ниже.

Использование таких переменных, как число и итератор, не нужно и может стать трудным для чтения, когда вы перейдете в multiмассивы.

 function display_slides() {
    $image_links = ['https://i.imgur.com/9wHVhck.jpg', 'https://i.imgur.com/SpBfUZi.jpg', 'https://i.imgur.com/ZqoEU9o.jpg', 'https://i.imgur.com/n2JY9jj.jpg', 'https://i.imgur.com/yD5I5WH.jpg', 'https://i.imgur.com/JKNnuSE.jpg', 'https://i.imgur.com/YwAmPYu.jpg', 'https://i.imgur.com/T7NBjJm.jpg', 'https://i.imgur.com/ujJ3g1k.jpg'];
    $output .='
    <div class="carousel-item active">
    <img class="d-block w-100" src="https://i.imgur.com/dCS4tQk.jpg" alt="Background Image">
    <div class="container">
    <div class="carousel-caption">
    <h2>Header</h2>
    <p>Sample text</p>
    </div>
    </div>
    </div>
    ';
     foreach ($image_links as $image ) {
         $output .='
         <div class="carousel-item">
         <img class="d-block w-100 src='.$image.'" alt="Background Image">
         <div class="container">
         <div class="carousel-caption">
         <h2>Header</h2>
         <p>Sample text</p>
         </div>
         </div>
         </div>
        ';
        }
    }
    return $output;

}
0 голосов
/ 22 февраля 2019

брат.вам не хватает закрывающей кавычки в теге img class="d-block w-100

этот код будет работать для вас идеально ..

$image_links = ['https://i.imgur.com/9wHVhck.jpg', 'https://i.imgur.com/SpBfUZi.jpg', 'https://i.imgur.com/ZqoEU9o.jpg', 'https://i.imgur.com/n2JY9jj.jpg', 'https://i.imgur.com/yD5I5WH.jpg', 'https://i.imgur.com/JKNnuSE.jpg', 'https://i.imgur.com/YwAmPYu.jpg', 'https://i.imgur.com/T7NBjJm.jpg', 'https://i.imgur.com/ujJ3g1k.jpg'];

    for ($i=0; $i <count($image_links) ; $i++) { 
        // echo $image_links[$i];exit;
        echo '<div class="carousel-item">
                <img class="d-block w-100" src="'.$image_links[$i].'" alt="Background Image">
                     <div class="container">
                    <div class="carousel-caption">
                        <h2>Header</h2>
                        <p>Sample text</p>
                    </div>
                </div>
            </div>';
    }
0 голосов
/ 22 февраля 2019

I, поскольку существует некоторая синтаксическая ошибка HTML. Вам не даны кавычки (") для src. Это должно быть как показано ниже

} else {
      $output .='
      <div class="carousel-item">
        <img style="border:1px solid #0f0" class="d-block w-100 src="'.$image_links[$iter].'" alt="Background Image"> // note the quotes added on src=""

Надеюсь, что все ясно.

Удачного кодирования.

0 голосов
/ 22 февраля 2019

Кажется, вы забыли закрыть атрибут класса.Ваш код

<img class="d-block w-100 src=' . $image_links[$iter] . ' alt="Background Image">

Рабочий код

<img class="d-block w-100" src="'.$image_links[$iter].'" alt="Background Image">
...