div onclick无效

时间:2012-05-20 09:06:40

标签: php html wordpress wordpress-plugin

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

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

&GT;

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

以下是原始的整个滑块代码,如果它有用:http://pastebin.com/4nKxXkSa

5 个答案:

答案 0 :(得分:2)

打开/关闭双引号是错误的:在PHP中,字符串必须用引号或双引号括起来;如果你想在双引号括起的字符串中加一个双引号,你必须用\来转义它。

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

此外,您的 onclick应位于<div ...>代码内,而不应位于<div></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>

答案 1 :(得分: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>"
  • 你仍然需要在字符串中转义双引号。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

问题就在于它所说的 - “onclick”在你的例子中不是带引号的字符串(PHP中为T_STRING)。你在一个字符串中连接在一起(连接)的所有东西都需要是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>

答案 4 :(得分:0)

报价不是唯一的问题。 onclick也不属于div元素属性。必须是(改变单打的双打以使其更清晰):

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