2012-12-01 4 views
5

나는 tinymce 편집기 텍스트 영역 내용을 잠시 동안 .txt 파일에 저장하려고했지만 아직 성공하지 못했습니다. 이 내 HTML 파일의 코드입니다 : 지금은 감사 해요 test.php파일에 tinymce textarea 내용 저장

<?php 
/* 
* test.php 
    */ 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head> 
    <title>test tiny mce</title> 
    <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
    <meta name="generator" content="Geany 0.21" /> 
</head> 

<body> 
<?php 

echo(stripslashes($_POST['content'])); 
?> 
<?php 
$file = "data.txt"; 
$fp = fopen($file, 'w'); 
$data =(stripslashes($_POST['content'])); 
fwrite($fp, $data); 
fclose($fp); 
?> 

</body> 

</html> 

가 도움이 회신

:-)이-많은 감사를 해결하기 위해

<!Doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>TinyMCE example</title> 
    <meta name="description" content="HTML5 Basic template"> 
    <meta name="author" content="R Dickinson"> 
    <link rel="stylesheet" href="css/styles.css?v=1.0"> 
    <script src="js/scripts.js"></script> 
    <script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script> 
    <script type="text/javascript"> 
tinyMCE.init({ 
// General options 
mode : "textareas", 

}); 
</script> 
    <!--[if lt IE 9]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 
</head> 
<body> 
    <header> 
<h1>test tinymce save</h1> 
    </header> 
    <nav> 
    </nav> 
    <section> 

<form method="post" action="test.php"> 
    <p> 
     <textarea name="content" style="width:50%"></textarea> 
     <input type="submit" value="Save" /> 
    </p>  
</form> 
    </section> 
    <aside> 
    </aside> 
    <footer> 
     </footer> 
</body> 
</html> 

업데이트 아래의 첫 번째 답변에 이어 triggerSave를 다음과 같이 추가했습니다.

<script language="Javascript"> 
function submitForm() { 
tinyMCE.triggerSave(); 
document.forms[0].submit(); 
} 
</script> 

<form method="post" action="test.php"> 
<p> 
    <textarea name="content" style="width:50%"></textarea> 
    <!--<input type="submit" value="Save" />--> 
    <a href="javascript:submitForm();">Submit Form</a> 
</p>  

그러나 아직도 성공하지

... 더 많은 도움 감사

다음 업데이트 2 내 jQuery를 TinyMCE에 버전입니다 접수 :

<!Doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Sample WebPage</title> 
    <meta name="description" content="HTML5 Basic template"> 
    <meta name="author" content="R Dickinson-see sitepoint etc"> 
    <link rel="stylesheet" href="css/styles.css?v=1.0"> 
    <script src="js/scripts.js"></script> 
    <script type="text/javascript" src="http://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
     google.load("jquery", "1.3"); 
</script> 
<!-- Load jQuery build --> 
<script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script> 
<script type="text/javascript"> 
tinyMCE.init({ 
     mode : "textareas" 
}); 
</script> 
    <!--[if lt IE 9]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 
</head> 
<body> 
    <header> 
     <h1>Enter the main heading, usually the same as the title.</h1> 
    </header> 
    <nav> 
    </nav> 
    <section> 


<!-- OF COURSE YOU NEED TO ADAPT ACTION TO WHAT PAGE YOU WANT TO LOAD WHEN HITTING "SAVE" --> 
<form method="post" action="show.php"> 
     <p>  
       <textarea name="content" cols="50" rows="15">This is some content that will be editable with TinyMCE.</textarea> 
       <input type="submit" value="Save" /> 
     </p> 
</form> 

    </section> 
    <aside> 
    </aside> 
    <footer> 

    </footer> 
</body> 
</html> 
+2

무엇이 문제입니까? 파일이 생성 되었습니까? 그것은 비어 있습니까? 서버가 오류를 반환합니까? $ _POST가 채워 졌습니까? – jcjr

+0

파일에 대한 쓰기 권한이 있습니까? –

+0

문제는 텍스트 영역에 입력 한 텍스트가 텍스트 파일에 저장되지 않는다는 것입니다. data.txt 파일이 이미 디렉토리에 있고 쓰기 권한이 있습니다. 나는 inetpub에있는 IIS 서버> wwwroot>를 테스트하고 있습니다. 더 많은 도움을 주셔서 감사합니다. – rpd

답변

0

당신 양식을 제출하기 전에 TinyMCE 인스턴스를 업데이트해야합니다. 이 자바 스크립트 사용 : 난 보통 함수에 넣고

tinyMCE.triggerSave(); 

및 형태의 onsubmit 이벤트를 호출합니다.

Stackoverflow에서이 주제와 관련하여 다른 질문이 이미 있습니다.

+0

안녕하십니까. 나는 TinyMCE 편집기 (CKEditor 아님)를 사용하면서 특히 당신이 무엇을 의미하는지 모르겠습니다. TinyMCE 코드로 좀 더 설명해 주시겠습니까? 감사합니다 – rpd

+0

오! 죄송 해요. 나는 당신의 제목을 잘못 읽고 있었다! 답변을 수정했습니다. – MahanGM

+0

원래 CKEditor 인스턴스에서 TinyMCE로 수정 해 주셔서 감사합니다. 제 질문을 편집했지만 아직 성공하지 못한 상태에서 triggerSave를 구현해 보았습니다. – rpd

6

질문 자체가 아래에 제공됩니다 : 파일에 TinyMCE에의 HTML의 내용을 저장하는 방법

. 우선

음, 당신이 필요합니다

1) 파일에 그 내용을 저장 할 몇 가지 기능을 구현 PHP 스크립트
3)이 컨텐츠를 보내기 편집기
2)의 콘텐츠를

당신이 그것을 작동해야하는 방식을 받고 있는지 확인 내용
얻기. PHP 스크립트

당신이해야 할 모든 PHP 스크립트 방법 tinyMCE.activeEditor.getContent()의 값을 전송하는 콘텐츠 전송 예를 들어

,

<script type="text/javascript"> 

window.onload = function(){ 

    var btn = document.getElementById('SubmitBtn'); 

    btn.onclick = function(){ 

    //This MUST alert HTML content of editor. 
    alert(tinyMCE.activeEditor.getContent()); 
    } 
} 

</script> 

<input type="button" id="SubmitBtn" value="Get HTML content"/> 

.

글쎄, Jquery-AJAX을 사용해야합니다.

<script type="text/javascript"> 
$(function(){ 

    var url = "path_to_your_php_script.php"; 

    $("#SomeSubmitButton").click(function(){ 
    //"content" will PHP variable 
    $.post(url, { "content" : tinyMCE.activeEditor.getContent() }, function(respond){ 

     if (respond ==){ 
      alert('Content saved to file'); 
      return; 
     } else { 
      //Error message assumed 
      alert(respond); 
     } 
    }); 
    }); 

}); 

</script> 

:

당신이 머리 부분에 스크립트 태그에 jquery.js를 포함한다고 가정, 다음 단계는

그것은 이것과 같은 것입니다 PHP 스크립트 자바 스크립트 변수를 전송 것 PHP 스크립트

우리가 "content"을 보낸 이후로 $_POST 자동 전역

<?php 

if (isset($_POST['content'])){ 

    //This is what you want - HTML content from tinyMCE 
    //just treat this a string 

    if (save_html_to_file($_POST['content'], '/some_file.html')){ 
    //Print 1 and exit script 
    die(1); 
    } else { 
     die('Couldnt write to stream'); 
    } 
} 

/** 
* 
* @param string $content HTML content from TinyMCE editor 
* @param string $path File you want to write into 
* @return boolean TRUE on success 
*/ 
function save_html_to_file($content, $path){ 
    return (bool) file_put_contents($path, $content); 
} 

그래서 실행 한 후이 다시 alert 성공의 메시지를 받아야합니다.

+0

감사합니다 metal_fan- 코드가 HTML 코드가있는 alertbox를 제공합니다 - tinymce 편집기 textarea의 텍스트를 텍스트 파일 (원래의 원래 질문!)에 저장하는 코드를 추가하십시오. 하하하 - 방금 저장 내용을 보았습니다. 파일 기능! 나는 그것을 시도 & 구현하고 다시보고 할 것입니다! 건배 :-) – rpd

+0

나는 이것을 성공적으로 해결하려고 노력했다. 코드 구현으로 내 2 파일 (.html/.php)을 편집하고 여기에 게시 할 수 있습니까? 나는 당신의 도움을 위해 매우 감사합니다. – rpd

+0

@rpd'stripslashes()'도'fopen()'도'fwrite()'도 사용할 필요가 없으며 가장 큰 오류가 없습니다. tinyMCE 인스턴스가있는 경우 양식을 제출하십시오. tinyMCE의 HTML 콘텐츠가 충분히 안전합니다 (tinyMCE 자체 필터링) – Yang