2014-09-06 1 views
0

我一直在嘗試將ckeditor集成到我的php網站,並且遇到以下問題。使用PHP Ckeditor內容檢索

本質上,提交表單後,ckeditor中的內容不會出現在$ _POST變量中。

我看了這個問題,顯然必須用一小段代碼更新表單域。

因此,我寫了相應的腳本,並將其鏈接到提交按鈕以獲得我想要的結果,但$ _POST仍顯示爲空。

我對Javascript沒有經驗,所以錯誤可能就在那裏。有任何想法嗎?

cktest.php:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>A Simple Page with CKEditor</title> 
     <!-- Make sure the path to CKEditor is correct. --> 
     <script src="http://localhost/ECLIPSEPHP/ckeditor/ckeditor.js"></script> 
    </head> 
    <body> 
     <form action = <?php echo $_SERVER['PHP_SELF'] 
     ?>> 
      <textarea name="test" id="test" rows="10" cols="80"> 
       This is my textarea to be replaced with CKEditor. 
      </textarea> 
      <input type = "submit" name = 'submitButton' id = 'submitButton' value = 'Submit'> 
      <script> 
       // Replace the <textarea id="test"> with a CKEditor 
       // instance, using default configuration. 
       CKEDITOR.replace('test'); 
      </script> 
      <script type = "text/javascript" src = "http://localhost/ECLIPSEPHP/js/update.js"></script> 
     </form> 
    </body> 
</html> 

<?php 
    var_dump($_POST); 
//echo $_POST['test']; 
    ?> 

應該處理onclick事件的JavaScript:

function updateAllMessageForms() 
{ 
    for (instance in CKEDITOR.instances) { 
     CKEDITOR.instances[instance].updateElement(); 
    } 
} 

var submitButton = document.getElementById('submitButton'); 
submitButton.onclick = updateAllMessageForms; 

回答

0

有相當多的與該代碼的問題。首先要檢查的是向該窗體標籤添加一個方法:method="post"

看什麼<form action = <?php echo $_SERVER['PHP_SELF'] ?>>呈現。它看起來可能是錯的。我猜它應該更像<form action="<?php echo $_SERVER['PHP_SELF'] ?>">

請勿將'用於HTML屬性分隔符,請改用"'submitButton'"submitButton"

如果您稍微編輯updateElement:CKEDITOR.instances[instance].updateElement(); alert(1); - 您是否看到警報?如果沒有,該代碼沒有被調用,你需要編輯它,以便它。

不要在屬性名稱,等號和值之間添加空格。這看起來很奇怪,可能被解釋爲錯誤,或者它可能會將Internet Explorer發送到怪癖模式。試着改變這種風格:type = "submit"type="submit"並跟上這種風格。

請記住,查看瀏覽器中的渲染源以查看瀏覽器實際獲得的內容通常是個好主意。快樂的編碼!

+0

非常感謝回覆和關於不良做法的提示。我已經做出了您所指出的更改。 我將onclick更改爲onsubmit。在這種情況下,如果我把它放在函數裏面,只有在它之外,我纔會得到警報。但是,將其更改回onclick意味着該警報也在該函數內被觸發。 這似乎很奇怪,但是它確實表明腳本被觸發。你對我的問題可能會有更好的瞭解嗎? – spliblib 2014-09-08 09:05:08

+0

嗯,你可以粘貼你的當前代碼,例如http://pastebin.com/?我可以在那裏看看它。沒有看看代碼,我的想象力就不足以想象:)。 – Nenotlep 2014-09-08 09:51:33

+0

這裏的JS: [鏈接](http://pastebin.com/e0jx3CU1) 和PHP: [鏈接](http://pastebin.com/ykZmzGE4) – spliblib 2014-09-08 10:48:51