【问题标题】:PHP array elements not entering correctly in bootstrapPHP 数组元素未在引导程序中正确输入
【发布时间】:2019-02-22 05:38:30
【问题描述】:

这些是我想插入引导轮播的图片链接:

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 中的链接输入到 img 标签的 src 中。第一张幻灯片(其中的链接是硬编码的)可以工作,其余的幻灯片都不能工作。 Link to full php file 我在这里做错了什么?

【问题讨论】:

  • “不工作”这是什么意思?链接不存在?轮播不起作用?
  • 1.你的数组的最大索引是8,你的$iter的值可以达到9。2.你需要引用src值:src="' . $image_links[$iter] . '"

标签: php arrays twitter-bootstrap carousel


【解决方案1】:

兄弟。您在 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>';
    }

【讨论】:

    【解决方案2】:

    您好像忘记关闭 class 属性了。 你的代码

    <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">
    

    【讨论】:

      【解决方案3】:

      我稍微清理了代码并使用了 foreach 循环而不是使用迭代器。我强烈建议您在想要访问数组时使用 foreach 循环,因为它通常更容易阅读。正如其他人所建议的那样,您的类属性上还缺少一个引号,该引号也已在下面修复。

      使用计数和迭代器等变量是不必要的,一旦进入多维数组就会变得难以阅读。

       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;
      
      }
      

      【讨论】:

      • 感谢您的提示。我一定会更多地研究 foreach。
      【解决方案4】:

      我因为有一些 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=""
      

      希望它清楚。

      编码愉快。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 2020-11-23
        • 2021-08-23
        • 2021-12-24
        相关资源
        最近更新 更多