0

ビデオのリストを (php 経由で) 動的に生成しました。それぞれのビデオは、プロフィール写真 ('userpic') を持つ別のユーザーに属しています。この最初の echo ステートメントで次のように、php 内で呼び出される JavaScript 関数「video」に「userpic」を渡すことができます。

<?php
//Lots of code
echo "<script>
function video(userpic) {
function AnotherFunction();
document.getElementById('UserPicHolder').innerHTML = userpic;
}
</script>";
//Lots of code
?>

関数 'video' は AnotherFunction を呼び出します (うまくいきます)。var = userpic のパスは正しいローカル パスであり、正しい div ('UserPicHolder') に正しく表示されます。すべて正常に動作します....次に、次のように内部 HTML を画像属性に変更します。

<?php
//Lots of code
echo "<script>
function video(userpic) {
function AnotherFunction();
document.getElementById('UserPicHolder').innerHTML = '<img src=\"userpic\"    
style=\"width:50px; height:55px\" alt=\"user picture\" class=\"SomeClass\" 
title=\"Some text\">';
}
</script>";
//Lots of code
?>

この2 番目の echo ステートメントでは、最初の echo ステートメントに示されているようにパスが明らかに正しいにもかかわらず、画像が「UserPicHolder」に表示されません。src の userpic をローカル パスに置き換えたところ、アイコンが正しく表示されました (この 3 番目の echo ステートメント)。

<?php
//Lots of code
echo "<script>
function video(userpic) {
function AnotherFunction();
document.getElementById('UserPicHolder').innerHTML = '<img src=\"images/icon.jpg\"    
style=\"width:50px; height:55px\" alt=\"user picture\" class=\"SomeClass\" 
title=\"Some text\">';
}
</script>";
//Lots of code
?>

2 番目の echo ステートメントの userpic が内部の HTML img src で識別されないのはなぜですか? また、(他の投稿を読んだ後、この時点で推測するだけです) src=\"userpic\" を src=\"".userpic."\" および src=\""+userpic+"\" および src=\ に置き換えたことに注意してください"+userpic+\" および src=\"".+userpic+."\" は役に立ちません。助けてくれてありがとう!

4

2 に答える 2

2

正しい方法はsrc=\"'+userpic+'\"、次のようになります。

document.getElementById('UserPicHolder').innerHTML = '<img src=\"'+userpic+'\" style=\"width:50px; height:55px\" alt=\"user picture\" class=\"SomeClass\" title=\"Some text\">';

これは、userpicが JS 変数であるため、残りの文字列と連結する必要があるためです。文字列の最初の部分は で'<img src=\"'、次に変数を追加してから'\" style=\"width:50px; height:55px\" alt=\"user picture\" class=\"SomeClass\" title=\"Some text\">'

そうは言っても、なぜ 1 つの長い文字列をエコーし​​て、次のように PHP を終了しないのでしょうか。

<?php
//Lots of code
?>
<script>
    function video(userpic) {
        function AnotherFunction();
        document.getElementById('UserPicHolder').innerHTML = '<img src="'+userpic+'">';
    }
</script>
<?php
//Lots of code
?>
于 2013-10-19T03:09:48.630 に答える
0

ここを正しく変更していませんinnerHTML

document.getElementById('UserPicHolder').innerHTML = '<img src=\"userpic\"    
style=\"width:50px; height:55px\" alt=\"user picture\" class=\"SomeClass\" 
title=\"Some text\">';

これにより、常にsrc=が作成されますuserpic

動的に+変更するには、連結演算子を使用し、コードを次のように変更します。

document.getElementById('UserPicHolder').innerHTML = '<img src=\"'+userpic+"\"    
style=\"width:50px; height:55px\" alt=\"user picture\" class=\"SomeClass\" 
title=\"Some text\">';
于 2013-10-19T03:14:36.400 に答える