0

簡単なタスクを実行しようとしています。「onmouseover」の下に2番目の関数名を挿入しますが、構文に問題がある可能性があります。

echo '<div onmouseover="changeText(); <?php if($title==""){echo changeViz();}; ?> ">';

おそらくいくつかの引用符をエスケープして追加する必要がありますが、正しい解決策を見つけることができません。ありがとう

何も機能していません。完全なコードを教えてください...:

echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); <?php if($title[$i]==""){echo changeViz();}; ?>">';
4

3 に答える 3

4

<?php ?>既存の php コード内にネストしていますが、これは構文エラーです。代わりに、javascript 関数changeViz()で引用符付き文字列として連結します。

このバージョンでは、三項演算子if()を使用して、元のステートメントを複製します。

echo '<div onmouseover="changeText(); ' . ($title == '' ? 'changeViz();' : '') .  '">';

ここでの三項演算は、 の場合は文字列に連結changeViz();するか、そうでない場合は空の文字列に連結します。echo$title == ""

完全なコードを見た後に更新します。

最初の部分で引用符が正しくエスケープされています。

echo '<div class="frame" onmouseover="changeText(\'' . $text[$i] . '\'); ' . ($title == '' ? 'changeViz();' : '') .  '">';
于 2012-06-21T13:24:49.170 に答える
1

すべてを 1 行で実行しようとしない場合は、コードをより読みやすくすることができます。

$onmouseover_action = "changeText(); ";
if($title==""){
    $onmouseover_action .= "changeViz(); ";
}
echo '<div onmouseover="'.$onmouseover_action.'">';

これにより、コードの保守が容易になり、コメントする必要が少なくなります。

于 2012-06-21T13:29:20.287 に答える
0

これを試して:

echo '<div class="frame" onmouseover="changeText(\''.$text[$i].'\'); '. ($title[$i]=="")?'changeViz();':'').'">';
于 2012-08-16T10:08:08.613 に答える