将字符串从PHP传递到锚标记的onclick处理程序
我试图在服务器端将一个值传递给将字符串从PHP传递到锚标记的onclick处理程序,php,javascript,alert,Php,Javascript,Alert,我试图在服务器端将一个值传递给a标记的onclick处理程序,但当我单击链接时,它在客户端给出了不同的结果 我的PHP代码: $any="link1"; echo(" <a id='link1' href='#' onclick='VisibleFalse($any)'>[+]</a><span><b>$candidatename</b></span>"); 但它正在打印”http://localhost/...“在警报中
a
标记的onclick
处理程序,但当我单击链接时,它在客户端给出了不同的结果
我的PHP代码:
$any="link1";
echo(" <a id='link1' href='#' onclick='VisibleFalse($any)'>[+]</a><span><b>$candidatename</b></span>");
但它正在打印”http://localhost/...“
在警报中
如果您有任何建议,我将不胜感激。必须引用JavaScript中的字符串文字
onclick='VisibleFalse("$any")'>
(但内在的事件属性被认为比它们的价值更痛苦,就像嵌入PHP的HTML中的Javascript一样。请改用。)
您还需要确保
$any
不包含任何将终止字符串文字的引号字符(您可能应该使用htmlspecialchars
使其成为HTML安全的,这样它就不会终止属性值)必须引用JavaScript中的字符串文字
onclick='VisibleFalse("$any")'>
(但内在的事件属性被认为比它们的价值更痛苦,就像嵌入PHP的HTML中的Javascript一样。请改用。)
您还需要确保
$any
不包含任何将终止字符串文字的引号字符(并且您可能应该使用htmlspecialchars
使其成为HTML安全的,这样它就不会终止属性值)问题是,您正在传递一个字符串,但忘记了在其中添加引号,因此最终结果将是该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>";
$any=“link1”;
//首先,echo不是一个函数。它可以伪装成一个,但不推荐这样做
//第二,像这样整理你的报价:
回显“.$candidatename.”;
//或
回显“$candidatename”;
问题是,您正在传递一个字符串,但忘记了在其中添加引号,因此最终结果将是该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>";
$any=“link1”;
//首先,echo不是一个函数。它可以伪装成一个,但不推荐这样做
//第二,像这样整理你的报价:
回显“.$candidatename.”;
//或
回显“$candidatename”;
使用HTML Unicode(可以找到其他字符)等效于引号'代码>
echo(" <a id='link1' href='#' onclick='javascript:VisibleFalse('$any')'>[+]</a><span><b>$candidatename</b></span>");
echo($candidatename”);
使用HTML Unicode(可以找到其他字符)等效于引号'代码>
echo(" <a id='link1' href='#' onclick='javascript:VisibleFalse('$any')'>[+]</a><span><b>$candidatename</b></span>");
echo($candidatename”);
为什么要在那段JavaScript中添加一个?没有循环。只是一个习惯(lol),但是上面的警告会从变量$any
中发出值。HTML中的RegardsCharter引用是Unicode而不是ASCII(两个字符集中的39个字符恰好是”
,但由于重叠,它只是ASCII)。为什么要在JavaScript中添加一个?没有循环。只是一个习惯(lol),但是上面的警告会从变量$any
中发出值。HTML中的RegardsCharter引用是Unicode而不是ASCII(在两个字符集中,39恰好是”
,但由于重叠,它只是ASCII)。