2014-02-05 2 views
1

html 텍스트 영역에 일반 텍스트를 넣었습니다. html 코드 샘플이 MySQL에 저장되어 있습니다.CKEditor - 서식있는 텍스트에 html 코드를 저장하고 표시하는 방법

텍스트 영역을 ckeditor 클래스로 변경했습니다. 모두 괜찮습니다. 그러나 모든 HTML 코드 블록은 이제 리치 텍스트 모드로 표시되지 않습니다.

<pre><code> 태그를 사용하려고했지만 작동하지 않습니다.

또한 insertpre 플러그인을 시도했지만 도움이되지 않습니다.

CKEditor에서 html 코드를 표시하거나 저장할 수있는 방법이 있습니까? 코드 샘플 버튼을 사용하여이 사이트에서와 같이 블록에서 html 태그를 무시하는 방법은 무엇입니까?

내보기. (죄송합니다, 아직 이미지를 게시 할 수있는 권한이 없습니다).

텍스트 영역 필드 :

<textarea class="ckeditor" name = "description" >Text</textarea>

내가 사용하여 붙여 넣기 코드를 해요 "Insertpre"부가 기능 :

<table border="1"> 
    <tr> 
    <td>100</td> 
    </tr> 
</table> 

에서 한 번 나는 정확한 사진을 참조하십시오.

양식 제출 후 나는 변수 : $description=$_POST['description'];을 가져 와서 데이터베이스에 저장합니다. 데이터베이스의

난이 변수의 다음 값을 참조 : 기본 데이터를 표시

<pre class="prettyprint"> 
&lt;table border=&quot;1&quot;&gt; 
&lt;tr&gt; 
    &lt;td&gt;100&lt;/td&gt; 
&lt;/tr&gt; 
&lt;/table&gt;</pre> 

HTML 형식 : I이 양식을 열면

<textarea class="ckeditor" name = "description" ><?php echo $description ?></textarea>

는 I 비어 코드 블록을 참조, 모든 html 코드는 pre-block 밖에 있으며, html 태그 대신에 실제 테이블을 보았습니다. 나는 "소스"버튼을 클릭하면

, 나는 같은 참조 - 테이블 태그 내부의 "사전"태그되지 않습니다 : 내가 알고있는 것처럼

<pre class="prettyprint"> 

&nbsp;</pre> 

<table border="1"> 
    <tbody> 
     <tr> 
      <td>100</td> 
     </tr> 
    </tbody> 
</table> 

, 코드 어딘가에 올바른 형식의 데이터베이스에 저장, 그래서 문제 ... 출력 또는 CKEditor 행동에

업데이트 : 찾을 해결 방법 : 후 긴 검색 나는이 주제에 비슷한 문제가 발견 : http://ckeditor.com/forums/CKEditor-3.x/html-code-pre-tags-problem 설명 된 해결 방법은 나에게 도움이 : 나는 로 출력을 할 경우 htmlsp ecialchars PHP 함수는 잘 작동합니다

<textarea class="ckeditor" name = "description" ><?php echo htmlspecialchars($description) ?></textarea>

잘 모르겠어요 그것이 해결 방법이나 올바른 솔루션입니다 - 다양한 모드에서 삽입이 모든 태그도 "사전"블록없이 표시 한 후. 그렇다면 매우 혼란 스럽기 때문에 CKEditor FAQ에 있어야합니다.

+0

인코딩 문제. 저장된 데이터 샘플 및 출력 방법을 보여주십시오. 예를 보여주는 것이 항상 좋은 생각입니다 :). 인코딩 된 데이터와 인코딩되지 않은 데이터를 모두 표시하십시오. 나는 당신이 다음과 같은 것을 가지고 있다고 생각하고있다 :'

나는 굉장하다

<p<WOO CODEZ<p/>
'. 내가 맞습니까? 나도 보여 줘. 그리고 어떻게 출력하는지. 그리고 그것이 현재 어떻게 작동하는지. 어떻게 작동 시키길 원하니? 보기는 ** 최고 **이다. – Nenotlep

+1

응답 해 주셔서 감사합니다. 내 예를 추가했습니다. 보시다시피, 문제는 코드가 CKEditor textarea에 "pre"태그를 남겨 놓았지만 그 이유를 이해할 수 없다는 것입니다. – Vladimir

+0

이상합니다. 이것은 아주 좋은 예이며 내가 볼 수있는 한 멀리까지 작동해야합니다. 나는 직접 말할 수 없으며, 다른 누군가는 우리가 눈치 채지 못하는 일이 있는지를 볼 것입니다. – Nenotlep

답변

2

나는 늦었을 수도 있습니다. 그러나 동일한 문제에 대해 저에게 도움이되는 솔루션을 공유하면 도움이 될 것입니다.

ckeditor에서 비슷한 문제가 발생하여 사용자 입력을 내 테이블에 저장하고 ckeditor 인스턴스에 저장된 html을 표시하려고 할 때 단순히 html을 무시하고 아무것도 표시하지 않을 것입니다.

그래서 콘솔에서 html을 검사하면 \r\n이라는 사실이 발견되었습니다. 그래서 난 그냥 그들을 제거하고 내가 다시 ckeditor html을 탈출 후 그것을 역임, 그것은 효과. 내보기

CKEDITOR.instaces.my_editor.setData("#{raw(html.gsub('\r\n',''))}") 

에서

html = "<p>Content comes here</p>\r\n" 

그리고 그것은 일 :

여기 내 루비 코드입니다. 희망이 도움이됩니다.

관련 문제