-1

ソーシャル Web サイトを作成しています。登録ユーザーのすべての詳細を、データベースから画像と名前を含むリストに表示したいと考えています。ユーザーが画像を提供していない場合は画像を表示したいと考えています。その際、特定の画像を表示する必要があります.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";
 }

null またはロードされていないかno_image.pngどうかを表示する必要があります$row_photo$row_photo

4

3 に答える 3

1

あなたが言った(コメントで)

変数が null の場合、「no_image.png」が表示されています。ビット イメージがロードされていない場合、「no_image.png」は表示されていません

パスの問題ではなく、imageError呼び出しに問題があります。

.を持つ要素がある場合、呼び出しは正しいでしょう。しかし、あなたの要素にはそれがなく、別のものを示していません。imgid "image1"imgid

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 に答える