-1

画像が表示されていないときに「 https://www.underconsideration.com/brandnew/archives/google_broken_image_00_a_logo.gif 」のように壊れた画像アイコンを非表示にする方法は? ユーザーがコメントを残したり、写真をアップロードしたりできるように、php と css を使用してコメント ボックスを作成しました。ただし、ユーザーが写真をアップロードする代わりにコメントのみを残したい場合、写真をアップロードせずにコメントのみを残した場合、コメント セクションに壊れた画像アイコンが表示されます。

私はスクリプトに適用onError='this.style.display ='none';'alt=''ましたが、まだ運がありません。

ユーザーがコメントを残すか写真をアップロードするときにコメントと写真を表示するために私が書いたコードは次のとおりです。

function getComments($conn){
    $sql = "SELECT * FROM comments";
    $result = $conn->query($sql);
    while ($row = $result->fetch_assoc()) {
        echo "<div class = 'comment_box'><p>";
            echo "<div class = 'comment_id'><p>";
                echo $row['uid']."<br>";
            echo "</p></div>";
            echo "<div class = 'comment_date'><p>";
                echo $row['date']."<br>";
            echo "</p></div>";
            echo "<div class = 'comment_msg fixed'><p>";                
                echo make_clickable(nl2br($row['message']));
            echo "</p></div>";

            echo "<div id='img_div'>";
                echo "<img class='img_size' src='images/".$row['image']."' onError='this.style.display ='none';' alt='' />";                
            echo "</div>";


        echo "</p>
            <form class='delete-form' method='POST' action='".deleteComments($conn)."'>
                <input type='hidden' name='cid' value='".$row['cid']."'> 
                <button type='submit' name='commentDelete'><img class='img_remove' src='img/remove.png'>REMOVE</button>
            </form>
            <form class='slash-form '>|
            </form>
            <form class='edit-form' method='POST' action='editcomment.php'>
                <input type='hidden' name='cid' value='".$row['cid']."'> 
                <input type='hidden' name='uid' value='".$row['uid']."'> 
                <input type='hidden' name='date' value='".$row['date']."'> 
                <input type='hidden' name='message' value='".$row['message']."'> 
                <button><img class='img_change' src='img/change.png'>EDIT</button>
            </form>         
        </div>";
    }
}

壊れた画像アイコンの問題は次の場所で発生しました:

echo "<div id='img_div'>";
    echo "<img class='img_size' src='images/".$row['image']."' onError='this.style.display ='none';' alt='' />";                
echo "</div>";
4

1 に答える 1

0

データベースがどのように見えるかははっきりとは言えませんが、次のようなものを使用して条件付きブロックをレンダリングできます。

if (isset($row['image']) && $row['image'] != '') {
    echo "<div id='img_div'>";
    echo "<img class='img_size' src='images/" . $row['image'] . "' alt='' />";
    echo "</div>";
} else {
    echo "<div id='img_div'>";
    echo "<img class='img_size' src='images/path-to-blank-image.png'alt='' />";
    echo "</div>";
}
于 2020-05-20T19:36:36.040 に答える