2012-04-09 34 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

相關問題