2014-03-25 38 views
0

我正在與Magento嘗試將彈出窗口的錯誤消息樣式化,而不是顯示內聯。如何在PHP中跳過單引號

我找到一篇文章解釋瞭如何做到這一點,但是當我嘗試使用它時,代碼顯示錯誤。 (http://azharkamar.com/5378/magento-modifying-default-message-alert-box-popup-dialog/

這是我使用的代碼:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>'; 

後面提到的文章中說,他們的註釋「不得不逃單引號,以使其發揮作用。」

我試着編輯代碼,並使用下面顯示的代碼。關閉按鈕出現,但不會關閉該框。

$html .= '<a class="msgclose" href="#" onclick="document.getElementById("messages").style.visibility="hidden"">x</a>'; 

任何幫助將不勝感激,謝謝!

+0

可能重複[如何轉義只有單引號?](http://stackoverflow.com/questions/6269188/how-to-escape-only-single-quotes) – JasonMArcher

回答

0

您可以用反斜槓前述逃避它一個單引號,或通過使用雙引號的字符串:

$var = 'Escape \' like this'; 
$var = "Or embed ' like this"; 

如果您需要嵌入的JavaScript,它可能是一個有點困難,因爲報價在Javascript字符串中也需要被轉義。通常你可以通過巧妙地結合單引號和雙引號得到角落找尋:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility=\'hidden\'">x</a>'; 

或者你可以用定界符:

$html = <<<html 
    <a class="msgclose" href="#" onclick="document.getElementById('messages').style.visibility='hidden'">x</a>' 
html; 

順便說一句,在HTML轉義引號是一個不同的故事。您可以使用&quot;實體這一點,所以如果你想在JavaScript中有雙引號,結果將是:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById(&quot;messages&quot;).style.visibility=&quot;hidden&quot;">x</a>'; 
+0

我試過第一個選項,結合單引號和雙引號,它完美的工作!非常感謝你的快速回復:) – Tamsin

0

您可以逃脫你的代碼中的單引號,用反斜槓,像這樣:

$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility=\'hidden\'">x</a>'; 

或者你可以移動的JavaScript出你的html:

$html .= '<a class="msgclose" href="#" onclick="hideMessage()">x</a>'; 

<script type="text/javascript"> 
function hideMessage() { 
    document.getElementById("messages").style.visibility = "hidden"; 
} 
</script> 
0

你既可以逃離 '把反斜槓之前他們(' - > \')

$html .= '<a class="msgclose" href="#" onclick="document.getElementById(\'messages\').style.visibility="hidden">x</a>'; 

或者使用EOF功能來消除轉義的需要。

$html .= <<<EOF 
<a class="msgclose" href="#" onclick="document.getElementById('messages').style.visibility="hidden">x</a> 

EOF; 
0

要在php中使用字符\反斜槓。但是,$html將有逃逸後的值將是凌亂 下面是我會做..

$html .= "<a class='msgclose' href='#' onclick='document.getElementById('messages').style.visibility='hidden''>x</a>"; 

我用雙引號,並在其中我用單引號