2016-02-25 121 views
1

编辑:我正在使用PHP来完成此操作。如何在foreach循环中的照片下显示名称

我正在制作一个从数据库(名称,照片路径)中绘制信息的页面,我希望它显示图片,然后显示它下面的名称。

foreach ($result_array as $la) { 
    $firstname = $la['first_name']; 
    $lastname = $la['last_name']; 
    $fullname = $firstname . ' ' . $lastname; 
    $image = $la['photo']; 
    echo '<img src="' . $image . '" width="100px" height="100px" alt="'.$fullname.'"/> '.$fullname.' '; 
} 

截至目前,被旁边的照片显示的名称,只是很糟糕。我会如何着手让名字出现在照片下方?

+1

这只是HTML ...只需添加'

'。$ fullname。'

' –

+0

建立html来做你想做的,然后建立一些PHP来输出html,就像那样... '
$全名' –

+0

@VincentDecaux当我这样做时,漂亮的照片网格消失。有没有一种方法来保持网格以及其下的名称? – user3342038

回答

1

虽然比简单添加换行符稍多一点的代码,但您可以将图像包装在<figure>中,并在<img>之后添加<figcaption>

foreach ($result_array as $la) { 
$firstname = $la['first_name']; 
$lastname = $la['last_name']; 
$fullname = $firstname . ' ' . $lastname; 
$image = $la['photo']; 
echo '<figure><img src="' . $image . '" width="100px" height="100px" alt="'.$fullname.'"/><figcaption>'.$fullname.'</figcaption></figure>'; 
} 

,每行显示多幅图像,添加以下你的CSS:

figure { 
    display: inline-block; 
} 

检查它在这个jsfiddle

+0

这仍然使得每行只有一个图像。 – user3342038

+0

我已更新我的答案以解决多个图像。 – jritchey

+0

这正是我想要的。非常感谢! – user3342038

0

试试这个:添加<br>创建一个换行符

foreach ($result_array as $la) { 
    $firstname = $la['first_name']; 
    $lastname = $la['last_name']; 
    $fullname = $firstname . ' ' . $lastname; 
    $image = $la['photo']; 
    echo '<img src="' . $image . '" width="100px" height="100px" alt="'.$fullname.'"/> <br>'.$fullname.' '; 
} 
+0

这使得每行只有一个图像。如果我没有名字,所有的图像都会显示在一个漂亮的网格中。有没有办法保持网格,但也有下面的名称? – user3342038

+0

@ user3342038你将不得不为它设计html,然后替换那里的值。或者在这种情况下可能是'

'设计。 –

0

这有根据您的需要不同的选项。一个简单的解决方案是图像后添加一个换行符:

echo '<img src="' . $image . '" width="100px" height="100px" alt="'.$fullname.'"/><br /'.$fullname.' '; 

如果你想在风格更多的控制,你可以在一个div或者跨度包名称,并指定一个类与CSS进一步设置样式:

echo '<img src="' . $image . '" width="100px" height="100px" alt="'.$fullname.'"/><div class="imagename">'.$fullname.'</div>'; 

当然,您还可以将整个图像和文本包装在一个div中,在其内部有或没有完整名称,以便进一步增加样式灵活性。