1

我试图让我的滑块的标题部分链接到我的 wordpress 网站上的相应文章网址。我很确定我在插件代码中找到了我认为需要编辑的部分,但是当我尝试执行以下操作时:

<?php 
echo "<div id='" . $sl_caption . "' class='nivo-html-caption'>" . $sl_htmlcaption . onclick="location.href='$url';"</div>";

?>

我收到“语法错误,意外的 T_STRING,期待 ',' 或 ';” 显示在我的滑块中,而我网站的其余部分无法正常工作。我已经尝试了许多我在这里尝试过的变体,但我似乎找不到一个有效的变体。

如果有帮助,这是原始的整个滑块代码:http: //pastebin.com/4nKxXkSa

4

5 回答 5

2

双引号的打开/关闭是错误的:在 PHP 中,字符串必须用引号或双引号括起来;如果你想把双引号放在双引号括起来的字符串中,你必须用\.

例如,您需要在 之前打开引号或双引号onclick,因为这是字符串的一部分。

此外,您onclick应该在<div ...>tag内,而不是在<div>and之间</div>


最后,您的 PHP 代码看起来有点像这样(我已经为变量设置了硬编码值,以帮助测试)

$sl_caption = 'ID';
$sl_htmlcaption = 'HTML';
$url = "URL";

echo "<div id='" 
    . $sl_caption 
    . "' class='nivo-html-caption' onclick=\"location.href='$url'\">"
    . $sl_htmlcaption 
    . "</div>"
;

你会得到以下 HTML 作为输出:

<div id='ID' class='nivo-html-caption' onclick="location.href='URL'" >HTML</div>
于 2012-05-20T09:10:45.000 回答
0

你的报价是问题所在。它应该是:

echo "<div id='" . $sl_caption . "' class='nivo-html-caption'>" . $sl_htmlcaption . "onclick=\"location.href='$url';\"</div>";

您需要双引号在连接运算符 ( ) 之后再次启动字符串.,但是您需要使用黑斜线转义此字符串中的双引号,以便 PHP 解释器不会认为该字符串过早结束。


正如 Pascal 指出的那样,该onclick属性实际上应该在声明div标签内:

echo "<div id='" . $sl_caption . "' class='nivo-html-caption'onclick=\"location.href='$url';\">" . $sl_htmlcaption . </div>";

使用插值也可以使事情变得更容易。使用双引号分隔字符串时,您可以使用大括号 ( )插入{}变量值,如下所示:

echo "<div id='{$sl_caption}' class='nivo-html-caption'onclick=\"location.href='{$url}';\">{$sl_htmlcaption}</div>";

这样,您只需打开和关闭字符串一次(在开头和结尾)。

谨防:

  • 您不能直接插入函数调用。您可以"<p>".strlen($x)."</p>"像以前一样连接或将结果存储在变量中并进行插值;"<p>{$result}</p>".
  • 不过,您仍然必须在字符串中转义双引号。
于 2012-05-20T09:10:27.697 回答
0

您的字符串引号未正确放置。试试这个

echo "<div id='" . $sl_caption . "' class='nivo-html-caption'>" . $sl_htmlcaption . "onclick=\"location.href='$url';\"</div>";
于 2012-05-20T09:12:09.553 回答
0

问题是它所说的-“onclick”在您的示例中不是带引号的字符串(T_STRING在 PHP 中)。您在字符串中连接(连接)的所有内容都需要是 a)引号中的字符串(单引号或双引号),b)可以转换为字符串的内容或 c)变量/常量/函数调用。

如果您没有该错误,那么您当前的示例也将“onclick”作为标签的内容,而不是标签上的属性。我想你想要的是:

<?php 
 echo "<div id='" . $sl_caption . "' class='nivo-html-caption' onclick='location.href=\'"  . $url . "\''>" . $sl_htmlcaption . "</div>";
?>

如果你想要标准的 HTML 属性,那么你通常会使用双引号,这会给你:

<?php 
 echo '<div id="' . $sl_caption . '" class="nivo-html-caption" onclick="location.href='  . $url . '">' . $sl_htmlcaption . '</div>';
?>

另外,您是否有任何理由使用 onclick 来设置当前位置而不是正常位置<a href>

于 2012-05-20T09:15:21.260 回答
0

qoute 不是唯一的问题。onclick 也超出了 div 元素的属性。必须是(更改单打的双打以使其更清晰):

echo '<div id="' . $sl_caption . '" class="nivo-html-caption" onclick="location.href=' . $url . ';">' . $sl_htmlcaption . '</div>';
于 2012-05-20T09:15:33.100 回答