0

マウスでロールオーバーすると別の画像に変わるボタンを作成しようとしましたが、コードが echo コマンド内にあるため、いくつかの複雑さが生じました。これは私が使用しようとした php コードです。それ以外の場合は、onmouse 関数が削除されたときに画像を表示するだけです。

if ($pg > 0) { echo ('<div class="next"><a href="?pg='.($pg-1).'"><img src="/images/prevpage.gif" onmouseover="this.src='/images/prevpagehl.gif';" onmouseout="this.src='/images/prevpage.gif';"/></a></div>'); }

このコードを使用すると、次のエラーが表示されます。

解析エラー: 構文エラー、145 行目の /home/wintblxq/public_html/index.php の予期しない T_CONSTANT_ENCAPSED_STRING

これを適切に機能させるために構文に変更を加えることができますか、それとも新しいアプローチを試みる必要がありますか?

4

3 に答える 3

2

引用符をエスケープする必要があります(実際にはティック):

if ($pg > 0) { 
    echo '<div class="next"><a href="?pg='.($pg-1).'"><img src="/images/prevpage.gif" onmouseover="this.src=\'/images/prevpagehl.gif\';" onmouseout="this.src=\'/images/prevpage.gif\';"/></a></div>'; 
}
于 2013-07-22T23:46:15.730 に答える
1

onmouseoverおよびonmouseoutJavaScriptで一重引用符をエスケープする必要があります。

if ($pg > 0) 
{ 
    echo ('<div class="next"><a href="?pg='.($pg-1).'"><img src="/images/prevpage.gif" onmouseover="this.src=\'/images/prevpagehl.gif\';" onmouseout="this.src=\'/images/prevpage.gif\';"/></a></div>'); 
}

PHP はこれらを文字列の末尾と混同しています。

于 2013-07-22T23:45:23.000 に答える
1

最初に、バックスラッシュの例で一重引用符をエスケープする必要があります。

<?php echo '<p onmouseover="alert(\\'SIngle Quotes\\');">YAY</p>';

php を書いてそれを見るより簡単な方法 (私の意見では) は、php から HTML を分離することです。ここにあなたのコードを使用して、私はそれを書く方法です。

<?php if ($pg > 0) { // PHP Scripts ?>
    <!-- HTML Tags and text -->
    <div class="next"><a href="?pg=<?php $pg-1  // MORE PHP CODE WITHIN HTML ?>"><img src="/images/prevpage.gif" onmouseover="this.src='/images/prevpagehl.gif';" onmouseout="this.src='/images/prevpage.gif';"/></a></div>

 <?php }  ?>

こうすれば、一重引用符をすべてエスケープすることを心配する必要がなくなり、見やすくなります。

于 2013-07-22T23:47:21.107 に答える