用php中的参数回显一个javascript函数

时间:2012-04-09 20:18:43

标签: php javascript

我正在尝试使用php中的onclick事件传递JavaScript函数。我面临的问题是我需要传递的函数有一个参数,需要用双引号括起来,如下所示:

onclick="removeElement("div8")"

现在,当我使用JavaScript生成参数时,它很好,但每当我在php中使用echo函数时,当我在浏览器中查看函数时会发生以下情况

onclick="removeElement(" div8")"

我用来生成它的代码是:

echo '<div><img src="img.png" alt="image" onclick="removeElement("div'.$x.'")" /></div>';

其中$ x是要添加到参数的数字。

是否有一种方法可以将函数作为一个整体返回而不是在它们之间获得空间?

7 个答案:

答案 0 :(得分:6)

这种情况正在发生,因为引号内有引号。这不起作用,打破了HTML解析器。它将onclick视为removeElement(,然后它会看到一个名为div8")"的属性。

试试这个:

echo '.....onclick="removeElement(&quot;div'.$x.'&quot;)"...';

HTML实体在属性内部进行解析,因此结果将是您的工作代码。

答案 1 :(得分:2)

将你的回声改为:

echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>';

答案 2 :(得分:2)

你必须在javascript中转义引号。而不是

onclick="removeElement("div8")"

你应该写

onclick="removeElement(&quot;div8&quot;)"

答案 3 :(得分:1)

尝试转义单引号

echo '<div><img src="img.png" alt="image" onclick="removeElement(\'div'.$x.'\')" /></div>';

答案 4 :(得分:1)

只要您不在属性值中使用任何空格,就可以省略html属性值周围的引号。所有浏览器都会处理这个问题。所以你可以写:

onclick=removeElement("div8")

您也可以使用单引号:

onclick="removeElement('div8')" or 
onclick='removeElement("div8")'

或者你可以逃避双引号:

echo '<div><img src="img.png" alt="image" onclick="removeElement(\"div'.$x.'\")" /></div>';

答案 5 :(得分:0)

但更简单的解决方案是直接用html编写:

?>
<div>
 <img src='img.png' alt='image' onclick='removeElement("div<?php echo $x; ?>")' />
</div>

答案 6 :(得分:0)

当你使用php echo时试试这段代码

<a href="javascript:add_cota(<?php echo $value->ID .','.$k.', \''.$st.'\'';?>)">
  

$ ST   是避免ReferenceError的字符串参数:Active未定义错误