我一直在尝试制作一个按钮,用鼠标滚动后会变成不同的图像,但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
我可以对语法进行任何更改以使其正常运行吗?或者我需要尝试一种新的方法吗?
您需要转义您的报价(实际上是您的报价):
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>';
}
您需要转义onmouseover
和onmouseout
中的单引号javascript:
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把这些和字符串的末尾混淆了。
您首先需要使用Backslash示例来转义单引号:
<?php echo '<p onmouseover="alert('''SIngle Quotes''');">YAY</p>';
编写和查看php的一种更简单的方法(在我看来)是将HTML与php分离。这里有你的代码,我会怎么写。
<?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 } ?>
这样你就不必担心逃避所有的单引号,而且你可以看到它更好。