Отображение изображений с использованием l oop на PHP - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь отобразить свои изображения в for l oop в теге формы, используя PHP, но это не работает. Я также пробовал сделать оператор возврата, но ничего не появляется.

<?php

$data = array("images/architecture-57e8d34a48_640.jpg",
"images/gateway-arch-57e2d64548_640.jpg",
"images/horseshoe-bend-57e6d6434f_640.jpg",
"images/lake-irene-57e6d24a4d_640.jpg",
"images/silhouette-57e8d5444e_640.jpg");

function displayCheckboxes(){
  for ($i=0; $i<count($data); $i++) {
  echo "<img src='".$data[$i] . "<br>";
  }
}
?>

  <body>
    <main id ="main">
      <form id="pics" action="process.php" method="get">
        <label>Name: </label>
        <?php echo displayCheckboxes();?>
      </form>
    </main>
  </body>

Ответы [ 5 ]

2 голосов
/ 07 мая 2020

Может быть так:

<?php

 $data = array("images/architecture-57e8d34a48_640.jpg",
"images/gateway-arch-57e2d64548_640.jpg",
"images/horseshoe-bend-57e6d6434f_640.jpg",
"images/lake-irene-57e6d24a4d_640.jpg",
"images/silhouette-57e8d5444e_640.jpg");


function displayCheckboxes(){
  global $data;
  for ($i=0; $i<count($data); $i++) {
     echo "<img src='".$data[$i]."'>" . "<br>";
  }
}

displayCheckboxes();

?>
1 голос
/ 07 мая 2020

Вы пытаетесь предоставить расширение «.jpg» изображений, которые вы ранее предоставили ему в пути изображений в массиве «$ data».

Например:
Мы возьмем первый элемент в массиве $ data с индексом = 0 "$ data [0]" (images / architecture-57e8d34a48_640.jpg):

В PHP выглядит как -> echo "<img src='".$data[0]."jpg'>" . "<br>";, а в HTML выглядит как -> <img src='images/architecture-57e8d34a48_640.jpg.jpg'>

Вы должны удалить расширение ". Jpg" из вашего эха, чтобы он выглядел так:

echo "<img src='".$data[$i]."'>" . "<br>";
1 голос
/ 07 мая 2020
<?php

$data = array(
    "images/architecture-57e8d34a48_640.jpg",
    "images/gateway-arch-57e2d64548_640.jpg",
    "images/horseshoe-bend-57e6d6434f_640.jpg",
    "images/lake-irene-57e6d24a4d_640.jpg",
    "images/silhouette-57e8d5444e_640.jpg"
);

?>

<body>
    <main id ="main">
        <form id="pics" action="process.php" method="get">
            <label>Name: </label>
            <?php foreach($data as $image): ?>
                <img src="<?= $image; ?>"></br>
            <?php endforeach; ?>
        </form>
    </main>
</body>

Это альтернативный способ. Выглядит намного чище и читабельнее. И я вообще-то не думаю, что нам нужна функция для печати HTML.

Я бы сказал, НИКОГДА не помещайте HTML внутри PHP echo, если это не обязательно. Причина, по которой я это утверждаю, заключается в том, что если вы поместите HTML внутри PHP, код станет легко запутанным. Становится трудно понять logi c, если только вы не кодируете. В частности, если вы работаете с некоторыми дизайнерами или в будущем, им будет сложно вносить даже небольшие изменения.

Даже я думаю, что использовать <?=, чем <?php echo, лучше.

1 голос
/ 07 мая 2020

это должно работать, вызовите функцию с $ data

$data = array("images/architecture-57e8d34a48_640.jpg",
"images/gateway-arch-57e2d64548_640.jpg",
"images/horseshoe-bend-57e6d6434f_640.jpg",
"images/lake-irene-57e6d24a4d_640.jpg",
"images/silhouette-57e8d5444e_640.jpg");

/* Write your displayCheckboxes() function here */
displayCheckboxes($data);

function displayCheckboxes($data){
  for ($i=0; $i<count($data); $i++) {
  echo "<img src='".$data[$i]."'.jpg>'" . "<br>";
  }
}
?>
1 голос
/ 07 мая 2020
function displayCheckboxes($img_array){
  foreach($img_array as $img) {
    echo "<img src='".$img."'>'" . "<br>";
  }
}

и

echo displayCheckboxes($data);

В вашей функции есть несколько ошибок: - $ data не находится внутри функции - .jpg уже присутствует в имени изображения.

...