0

我试图将服务器端的值传递给标签的onclick处理程序a,但是当我单击链接时,它在客户端给出了不同的结果。

我的PHP代码:

$any="link1";
echo(" <a id='link1' href='#' onclick='VisibleFalse($any)'>[+]</a><span><b>$candidatename</b></span>");

我想将字符串传递"link1"给函数VisibleFalse,该函数将字符串显示为警报:

function VisibleFalse(ID)
{
    alert(ID);
}

但它正在"http://localhost/..."警报中打印。

我会很感激你的任何建议。

4

3 回答 3

3

问题是,您正在传递一个字符串,而您忘记为其添加引号,因此最终结果将是该 JavaScript 函数中的一个字符串。这是查看此问题的更好方法:

$any="link1";
// First, echo isn't a function. It can be faked to be used as one, but that's not recommended
// Second, sort out your quoting like this:
echo '<a id="link1" href="#" onclick="VisibleFalse(\''.$any.'\')">[+]</a><span><b>'.$candidatename.'</b></span>';

// OR
echo "<a id='link1' href='#' onclick='VisibleFalse(\"$any\")'>[+]</a><span><b>$candidatename</b></span>";
于 2012-07-17T08:15:59.673 回答
0

JavaScript 中的字符串文字必须被引用。

onclick='VisibleFalse(&quot;$any&quot;)'>

(但内在的事件属性被认为比它们更有价值,就像嵌入在 PHP 中的 HTML 中嵌入的 Javascript。改用不显眼的 JavaScript。)

您还需要确保它$any不包含任何会终止字符串文字的引号字符(并且您可能应该使其成为 HTML 安全的,htmlspecialchars因此它不会终止属性值)

于 2012-07-17T08:15:55.680 回答
0

使用等同于引号的 HTML Unicode(可以在此处&#39;找到其他字符) 。

echo(" <a id='link1' href='#' onclick='javascript:VisibleFalse(&#39;$any&#39;)'>[+]</a><span><b>$candidatename</b></span>");
于 2012-07-17T08:17:22.450 回答