2012-04-09 96 views
1

我想在php中通过一个带有onclick事件的JavaScript函数。我现在面临的问题是,我需要通过函数有需要在双引号如下参数:在php中使用参数回显一个javascript函数

onclick="removeElement("div8")" 

现在,当我使用JavaScript来生成它出来罚款的参数,但每当我在PHP中使用回声功能,当我看功能在浏览器中会发生以下情况

onclick="removeElement(" div8")" 

我使用生成该代码是:

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

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

有没有一种方式,该函数作为一个整体返回,并没有得到之间的空间?

回答

5

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

试试这个:

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

HTML实体中的属性分析,这样的结果将是你的工作代码。

2

您的回音改成这样:

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

此方法不起作用 – Keleb 2012-04-09 20:28:43

1

尝试逃脱你的单引号

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

不适用于HTML – Keleb 2012-04-09 20:25:10

+0

你在说什么?您正在使用javascript转义引号,而不是HTML。 – Dutchie432 2012-04-09 20:28:08

+0

当从浏览器中查看HTML将显示与\仍然在该功能,因此将无法正常工作 – Keleb 2012-04-10 00:33:54

1

只要你不使用任何空间,在属性值可以ommit周围的HTML引号属性值。所有的浏览器都能处理好。所以,你可以写:

onclick=removeElement("div8") 

你也可以使用单引号:

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

或者你可以逃脱双引号:

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

引用必须替换为",使用“在这种情况下是不正确的。 – Dima 2012-04-09 20:24:35

+0

感谢您的这个提示 – Keleb 2012-04-09 20:26:14

+0

@Dima它仍然工作时,我使用上述语法 – Keleb 2012-04-09 20:27:29

2

必须逃脱的JavaScript引号。取而代之的

onclick="removeElement("div8")" 

你应该写

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

但是一个简单的解决方案是直接在HTML中写:

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

在使用PHP时重复尝试这个代码

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

$st is the string param to avoid the ReferenceError: Active is not defined error

相关问题