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

您需要转义onmouseoveronmouseoutjavascript 中的单引号:

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 并查看它的一种更简单的方法(在我看来)是将 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 }  ?>

这样您就不必担心转义所有单引号,并且可以更好地看到它。

于 2013-07-22T23:47:21.107 回答