2014-03-25 6 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 문자열에서 이스케이프해야합니다.

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

을 아니면 히어 닥을 사용할 수 있습니다 : 일반적으로 당신이 교묘하게 결합하는 단일 및 이중 따옴표로 arround를 얻을 수 있습니다

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

을 그건 그렇고, HTML에서 따옴표를 이스케이프하는 것은 다른 이야기입니다. 당신이 자바 스크립트에서 따옴표를 갖고 싶어 그래서 만약 당신이 그의 &quot; 엔티티를 사용, 결과는 다음과 같습니다

$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>'; 

또는 당신은 당신의 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

하려면 문자를 이스케이프하려면 \ 백 슬래시를 사용하십시오. 그러나 $html 탈출 후 미칠 값은

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

나는 따옴표를 사용하고 그 안에서 나는 작은 따옴표에게 방법의

관련 문제