我很难将TinyMCE,Ajax和PHP Post结合使用到ExpressionEngine数据库。 TinyMCE区域在网站加载时从我的数据库收集数据,我可以用丰富的文本对其进行编辑。
但是,当我使用ajax和POST将这些更改保存到PHP时,只要字符串包含
,字符串就会被删除。我没有尝试过任何其他特殊字符,但它接受<p>
和<h1>
PHP代码如下所示:
$tinyMCEData = $_POST['tinyMCEData'];
当我回应这个时,它就被切断了。我试图在通过Ajax发送之前替换它,但我还没有运气。我不在乎是否还有,只要它被接受。
我也尝试过这样的好处:
$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 three four</p>
php post后的价值是什么:
<p>One two
答案 0 :(得分: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
});
还有成功和失败定义为功能吗?
答案 1 :(得分:0)
complex857是对的!我只需要在发送到POST之前转义字符串。 像这样:
var tinyMCEData = escape(tinyMCEData);
答案 2 :(得分:0)
对于仍然存在此问题的人的另一种解决方案(特别是如果您想提交更多详细信息)...
我将文本数据与其他变量分开,而不是使用数据字符串。然后确保其中一个变量包含您的文本
std::priority_queue< int, std::vector<int>, std::greater<int> > pq;