我需要设置背景图像以回显<div>

时间:2017-01-03 13:49:38

标签: php html sql styles echo

将背景图像发布到回显的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;
}

1 个答案:

答案 0 :(得分:1)

删除变量周围的引号:

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源代码后,它会显示出一个&#34;属性之间没有空格&#34;消息。

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

参考文献:

  

&#34;我也试过style='background-image: url('<?php echo $imageLocation; ?>')'&#34;

如果你在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>