我正在尝试使用TinyMCE的PHP Spellchecker 4.0插件,但在我尝试进行任何实际的拼写检查时,会出现Error: Missing input parameter 'text'
错误。
这是我的代码:
<script type="text/javascript" src="tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
menubar:false,
statusbar:false,
selector: "textarea",
plugins: ["link","spellchecker"],
toolbar: "bold italic | numlist bullist | link unlink | spellchecker",
force_br_newlines: true,
force_p_newlines: false,
forced_root_block: '',
height: 300,
spellchecker_rpc_url: "spellchecker.php"
});
</script>
<textarea>tgis is misspelled text</textarea>
你可以在这里测试一下:
http://www.frostjedi.com/terra/dev/tinymce/test.html
这是我正在使用的拼写检查程序版本的链接:
http://www.tinymce.com/wiki.php/PHP_Spellchecker
我使用Wireshark查看上面发送的内容,这是(通过POST):
{"id":"c0","method":"spellcheck","params":{"lang":"en","words":["tgis","is","misspelled","text"]}}
我得到的回应:
{"error":"Missing input parameter 'text'."}
响应正确 - 没有名为text的输入参数。但是如果需要的话,我希望javascript能够添加它。
我尝试<textarea name="text">
和<textarea id="text">
也无济于事。
有什么想法吗?
答案 0 :(得分:1)
该插件已损坏。根据我的OP,它的帖子是json编码的。然而,PHP引擎期待非JSON编码的代码。来自spellchecker\includes\Engine.php
:
$method = self::getParam("method", "spellcheck");
$lang = self::getParam("lang", "en_US");
$text = self::getParam("text");
取而代之的是让它对我有用:
global $HTTP_RAW_POST_DATA;
$data = json_decode($HTTP_RAW_POST_DATA);
$method = $data->method;
$lang = $data->params->lang;
$text = $data->params->words;
我认为,在他们的网站上突出显示的插件并不是开箱即用,但无论如何都是愚蠢的。