PHP-字符串在字符后被切碎
我很难将TinyMCE、Ajax和PHP Post组合使用到ExpressionEngine数据库。当网站加载时,TinyMCE区域从我的数据库收集数据,我可以用富文本编辑它 但是,当我使用ajax和POST-to-PHP保存这些更改时,只要字符串包含PHP-字符串在字符后被切碎,php,javascript,post,Php,Javascript,Post,我很难将TinyMCE、Ajax和PHP Post组合使用到ExpressionEngine数据库。当网站加载时,TinyMCE区域从我的数据库收集数据,我可以用富文本编辑它 但是,当我使用ajax和POST-to-PHP保存这些更改时,只要字符串包含,字符串就会被截断。我没有尝试任何其他特殊字符,但它接受和 PHP代码如下所示: $tinyMCEData = $_POST['tinyMCEData']; $tinyMCEData = htmlentities($_POST['tinyMCED
,字符串就会被截断。我没有尝试任何其他特殊字符,但它接受
和
PHP代码如下所示:
$tinyMCEData = $_POST['tinyMCEData'];
$tinyMCEData = htmlentities($_POST['tinyMCEData']);
当我回音时,它在这一点被切断了。在通过Ajax发送之前,我已经尝试替换nbsp,但我还没有运气。我真的不在乎里面是否有一个秘密,只要它被接受
我也尝试过htmlentities,比如:
$tinyMCEData = $_POST['tinyMCEData'];
$tinyMCEData = htmlentities($_POST['tinyMCEData']);
那里也没有运气。那么为什么会发生这种情况呢?我想这是有原因的。非常感谢任何帮助
编辑:我的案例与此问题中的示例完全相同:
仅显示警报框底部的两个屏幕截图。我在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
一二
您有一个syntac错误:
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
});
此外,成功和失败是否定义为功能?complex857是正确的!我只要把绳子解开就可以把它寄出去了。 像这样:
var tinyMCEData = escape(tinyMCEData);
另一个解决方案是为那些仍然对此有问题的人(尤其是如果你想提交更多细节的话) 我将文本数据与其他变量分离,而不是使用datastring。然后确保其中一个变量包含文本
data: {var1: var1,
var2: var2,
var3: var3}
听起来您正在将AJAX查询主体构建为字符串,并放弃转义
&
字符。您可以提交javascript部分将请求发送到后端吗?发送到PHP的数据看起来像什么?看起来这些错误是在你的PHP代码上游刚刚编辑了我的帖子来回答你的问题。我一次发送的字段远远不止一个。但是只有这个小区域需要丰富的文本,你的complex857让我走上了正确的轨道:)转义字符串。var tinyMCEData=逃逸(tinyMCEData);好像有用!抱歉,语法错误只是我粘贴代码时的错误。是的,成功函数和失败函数已经定义。只是没有在这里添加它们,因为它们现在只输出一些警报框。然而,这个问题是通过complex857提到的转义函数解决的:)我喜欢这个地方:)