2014-09-06 149 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