在php echo语句中的img标记内使用onmouseover时出错

时间:2013-07-22 23:42:01

标签: php html onmouseover

我一直试图制作一个按钮,一旦用鼠标滚动就会变成另一个图像,但是在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

我可以使语法发生任何变化以使其正常运行,或者我是否需要尝试新方法?

3 个答案:

答案 0 :(得分: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>'; 
}

答案 1 :(得分:1)

您需要转义onmouseoveronmouseout 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将这些与字符串的结尾混淆。

答案 2 :(得分: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 }  ?>

通过这种方式,您不必担心转义所有单引号,您可以更好地看到它。