当封面图像丢失时,如何显示书名而不是封面图像

  • 本文关键字:封面 图像 显示 何显示 php html
  • 更新时间 :
  • 英文 :


我正在进行一个PHP/SQL项目,该项目是苏斯博士书籍库。我想知道当书没有图像时,如何只显示书名(而不是断开的图像链接(。

这是我现在有的代码,只显示这本书的封面图像。

<section class="books">
<?php foreach ($books as $book) : ?>
<a class="book grow" href="book.php?id=<?php echo $book['book_id']; ?>"> <img class="book-image" src="book-covers/<?php echo $book['book_image'];?>"></a>
<?php endforeach; ?>
</section>

由于您使用的是替代PHP语法(有时称为模板格式(,您可能也会喜欢该格式中的条件。

下面的代码检查图像,如果set按原样渲染,否则它会渲染带有一些文本的链接,我会让您填充数据库/数组的空白。

这个版本比三进制更详细,但很有可能你也需要一个不同的CSS类(如示例所示(,所以我用这种方式进行了分解。

<section class="books">
<?php foreach ($books as $book) : ?>
<?php if($book['book_image']): ?>
<a class="book grow image" href="book.php?id=<?php echo $book['book_id']; ?>"> <img class="book-image" src="book-covers/<?php echo $book['book_image'];?>"></a>
<?php else: ?>
<a class="book grow text" href="book.php?id=<?php echo $book['book_id']; ?>">Book text here</a>
<?php endif; ?>
<?php endforeach; ?>
</section>

Chris Haas的回答非常准确(详细,CSS(。然而,如果你想使用或更好地理解三元表达式,你可以尝试如下:

图书阵列数据:

<?php
$books = array(
"Book 1" =>
array (
"book_id"=> "1",
"book_title"=> "title 1",
"book_image"=> "image 1"),
"Book 2" =>
array (
"book_id" => "2",
"book_title" => "title 2",
"book_image" => "",)
);
?>

您的代码:

<section class="books">
<?php foreach ($books as $book) : ?>
<a class="book grow" href="book.php?id=<?php echo $book['book_id']; ?>">
<?php
//echo ($some_condition) ? 'The condition is true!' : 'The condition is false.';
echo ($book['book_image']) ? '<img class="book-image" src="book-covers/'.$book["book_image"].'">' : '<span class="book title">'.$book["book_title"].'</span>';
?>
</a>
<?php endforeach; ?>
</section>

沙盒链接https://onlinephp.io/c/16012

最新更新