我需要将背景图片设置为回显 <div>

I need to set background image to echoed <div>

将背景图片发布到回显 div,我从数据库中获取要用于特定 div 的图片名称,但是当我尝试将文件路径设置为背景图片时,如您在下面的代码不起作用,我也试过了 style='background-image: url('<?php echo $imageLocation; ?>')'

所以它与 div 相呼应,但他的背景没有改变,我在用作文件路径的文件夹中有正确的图像。我将不胜感激,

if (mysqli_num_rows($res) > 0) {
    while ($row = mysqli_fetch_assoc($res)) {   
        $img = $row['img'];
        define ('SITE_ROOT', $_SERVER['DOCUMENT_ROOT']);
        $imageLocation = SITE_ROOT."images/articlePics/$img";
        $posts .= "<div  class='newArticle' style='background-image: url('$imageLocation')'></div>";
    }
    echo $posts;
}

要么删除变量周围的引号:

url('$imageLocation')
    ^              ^

所以它读作:

url($imageLocation)

或使用转义双引号:

url(\"$imageLocation\")

旁注:不要在没有转义双引号的情况下使用 url("$imageLocation"),因为那样会引发解析错误。

两者都可以。但是,我会选择后者,即转义双引号,这是应该使用的方法。

根据 https://developer.mozilla.org/en/docs/Web/CSS/background-image

的示例
background-image: url("http://www.example.com/bck.png");
  • 查看 HTML 来源后,它会显示一条 "No space between attributes" 消息。

如果仍然失败,您可能在某处有语法错误。

参考文献:


"I also tried style='background-image: url('<?php echo $imageLocation; ?>')'"

如果你在 echo 中尝试这样做,那会抛出一个解析错误;因为你已经在 PHP.

如果它在 PHP 之外,那么以下内容也会起作用:

<?php 
// ...
?>
<body>
    <div style='background-image: url("<?php echo $imageLocation;?>")'></div>
</body>

但是,由于 div 里面什么也没有,它实际上不会向您显示任何内容。如果您查看 HTML 源,您会发现图像源实际上就在那里。如果不是,再一次;你可能在某处有错误。

所以你可以用一些文本来测试它,例如:

<?php 
// ...
?>
<body>
    <div style='background-image: url("<?php echo $imageLocation;?>")'>Some text</div>
</body>

或:

<body>
<?php 
$article = "Your article";
?>
<div style='background-image: url("<?php echo $imageLocation;?>")'>
<?php echo $article;?>
</div>
</body>