-1

我正在创建一个社交网站。我想在一个列表中显示数据库中注册用户的所有详细信息,其中包括他们的图像和名称。如果用户没有提供图像,我想显示图像。如果图像已经由用户提供,有时可能会从数据库中丢失。那时我还需要显示特定的图像。我发现通过使用javascript方法onerror(),我们可以检查图像是否加载。我不知道它执行。

我的代码示例是这样的:

while($row_data = mysql_fetch_array($result_personal))
{
$row_photo = $row_data['acnt_profile_picture'];  
<div class="feedstory" id="feedstory">
 <img src="<?php if($row_photo!=NULL){echo $row_photo;}
 else{?>images/no_image.png<?php }?>" id="image1" width="34" height="34" align="left" class="feedthumb" alt="photo" 
 onerror="imageError()"/>
</div>
}

我的 javscript 方法是这样的:

 function imageError()
 {
 document.getElementById("image1").src="images/no_image.png";
 }

我需要显示no_image.png是否$row_photo为空或未$row_photo加载

4

3 回答 3

1

你说过(在评论中)

如果变量为空,则显示“no_image.png”。如果未加载图像,则显示“no_image.png”

所以这不是路径问题,imageError调用有问题。

如果有一个img带有id "image1". 但是你的img元素没有那个id,你也没有展示一个不同的元素。

如果您的目标是no_image.png在有错误的img元素中显示,那么:

更改您的onerror属性:

onerror="imageError()"

onerror="imageError(this)"

然后更改imageError为:

function imageError(img)
{
    img.src="images/no_image.png";
}
于 2013-02-26T10:26:32.550 回答
0

确保将 php 代码包含在 php 标签中。

jQuery解决方案:

<?php
while($row_data = mysql_fetch_array($result_personal)) {
    $row_photo = $row_data['acnt_profile_picture'];
?>
    <div class="feedstory" id="feedstory">
         <img src="<?php echo $row_photo ?>" width="34" height="34" align="left" class="feedthumb" alt="photo" />
    </div>
<?php } ?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    $('img').error(function() {
        $(this).attr({
            src: '/images/missing-image.jpg',
            alt: 'Sorry! This image is not available!',
            style:'border: 1px solid #f00;'
        });
    });
});
</script>
于 2013-02-26T10:27:31.557 回答
0

根据您的数据库结构是否与我的相同,您可以使用此功能,我将它放在我的 User 类中。

public static function ProfileImage($user_ID, $image_ID, $size)
{
    global $http_r;

    $image_URL;
    if($image_ID != null)
        $image_URL = $http_r ."/userfiles/images/". $user_ID ."/thumbnails/". $image_ID .".jpeg";
    else
        $image_URL = $http_r ."/template/images/noprofilepic.jpg";

    ?>
    <img src="<?php echo $image_URL; ?>" class="profile-<?php echo $size; ?>">
    <?php
}

然后使用如下:User::ProfileImage($user_ID, $image_ID, "small");

但是,我的图像有一个单独的表,我不直接存储图像路径。

于 2013-02-26T10:27:44.060 回答