0

我很难将 TinyMCE、Ajax 和 PHP Post 组合使用到 ExpressionEngine 数据库。TinyMCE 区域在网站加载时从我的数据库中收集数据,我可以使用富文本对其进行编辑。

但是,当我使用 ajax 和 POST 将这些更改保存到 PHP 时,只要字符串包含&nbsp;. 我没有尝试任何其他特殊字符,但它接受<p><h1>

PHP 代码如下所示:

$tinyMCEData = $_POST['tinyMCEData'];

而当我回应这一点时,它在这一点上被切断了。我试图在通过 Ajax 发送之前更换 nbsp,但我还没有运气。我也不在乎那里是否有 nbsp,只要它被接受即可。

我也试过htmlentities,像这样:

$tinyMCEData = htmlentities($_POST['tinyMCEData']);

那里也没有运气。那么为什么会这样呢?我猜这是有原因的。非常感谢任何帮助!

编辑:我的案例看起来与这个问题的示例完全一样: TinyMCE + Jquery + PHP + AJAX Special chars issue

只有警报框的底部两个屏幕截图。我在 tinyMCE 编辑器中的所有内容不止一次在文本中出现空格。

Edit2:这是 javascript 的样子:

var tinyMCEData = tinyMCE.activeEditor.getContent();
var pars = 'tinyMCEData=' + tinyMCEData;

var myAjax = new Ajax.Request(url, {
   method: 'post',
   postBody: 'pars,
   onSuccess: success,
   onFailure: failure
});

此时,正在发送的数据如下所示:

<p>One two &nbsp;three &nbsp; four</p>

php post后的值是什么:

<p>One two 
4

3 回答 3

1

你有一个语法错误:

var myAjax = new Ajax.Request(url, {
   method: 'post',
   postBody: 'pars,
   onSuccess: success,
   onFailure: failure
});

应该是

var myAjax = new Ajax.Request(url, {
   method: 'post',
   postBody: pars,
   onSuccess: success,
   onFailure: failure
});

另外,成功和失败是否定义为功能?

于 2013-02-12T07:15:34.710 回答
0

complex857 是对的!我只需要在将字符串发送到 POST 之前对其进行转义。像这样:

var tinyMCEData = escape(tinyMCEData);
于 2013-02-12T08:07:25.077 回答
0

对于那些对此仍有疑问的人的另一种解决方案(特别是如果您想提交更多详细信息)......

我将文本数据与其他变量分开,而不是使用数据字符串。然后确保其中一个变量包含您的文本

data: {var1: var1,
       var2: var2,
       var3: var3}
于 2017-07-09T09:43:29.213 回答