2

このコードの HTML 出力を確認するたびに、スラッシュが含まれていません。したがって、背景画像は失敗します。私はそれをhtmlからphpへのコンバーターに通しました。道に迷いました; 助けてください。

while($row = mysql_fetch_array($data))
{
    //Echo Theme Template on pages  
    echo "<div style='background-image:url('../uploads/avi/{$row['avi']}')></div>";
    echo "<div class='myname'>{$me}</div>"; 
}
4

3 に答える 3

4

最も簡単な答えは'、スタイル属性が閉じられていないことです..

echo "<div style='background-image:url('../uploads/avi/{$row['avi']}')'></div>";
                                                                                                                                              ^ここ

しかし、これはそのままでは機能しません..したがって、次のように引用符を調整する必要があります。

echo "<div style='background-image:url(\"../uploads/avi/{$row['avi']}\");'></div>";

壊れたエコーを見ることができますhttp://codepad.viper-7.com/CGMdUx

編集されたものはここにありますhttp://codepad.viper-7.com/bEyKFz

コードパッドの htmlspecialchars を介して渡したので、文字列として表示され、表示目的のみで HTML としてレンダリングされるのを避けることができます..

于 2013-05-08T19:10:17.970 に答える
0

属性で内部が'使用されるため、内部styleで二重引用符を使用する必要があります。

echo '<div style="background-image:url(\'../uploads/avi/' . $row['avi'] . "')></div>";

結果

<div style="background-image:url('../uploads/avi/abc.efg')></div>
于 2013-05-08T18:58:07.697 に答える
0

ここで 2 つの間違いを犯しました。style タグの最後の引用符を閉じておらず、style='' と url('') の両方に一重引用符を使用すると、互いに相殺されました。

HTML タグには常に二重引用符を使用することをお勧めします。

while($row = mysql_fetch_array($data))
//Echo Theme Template on pages
{
    echo "<div style=\"background-image:url('../uploads/avi/{$row['avi']}');\"></div>";
    echo "<div class='myname'>{$me}</div>";
}

考慮すべきもう 1 つのことは、Firebug またはその他のツールを使用して、「検査」ではなく「ソースを表示」と常に言うことです。URL が印刷されていないのは、新しいブラウザーが「スマート」であり、DOM エラーを修正しようとするためです。Firebug または同様のツールを使用してソースを検査すると、ブラウザが実際に解釈する内容が表示されます。ソースを表示すると、実際にブラウザに送信されたものが表示されます。

于 2013-05-08T19:14:53.040 に答える