我正在尝试将滑块的标题部分链接到我的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
答案 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>';