【发布时间】:2011-03-27 09:14:27
【问题描述】:
这听起来可能很奇怪,但我有一个 JQ/AJAX/PHP 发布问题。
我的“代码”就在那里,并且在大多数情况下都有效,除了 1 - 当我尝试通过流程传递标签时。
我这样抓取html
var ed = $('#fraRTE').contents().find('body #editarea').html();
#fraRTE 是 iframe 宽度,可编辑 div #editarea 因此 .contents().find('body #editarea').html()
所以如果var ed 只是“hello world etc....”则没有问题并且数据已被处理但如果var ed 类似于“hello world etc....<img src="image.png">”数据未处理 - 奇怪的是,如果 var ed 是“hello world etc....<img src="image.png">” - 文本和实际处理数据的图像之间没有间隙。
如果我在发帖前alert(ed),那么我会看到“正确”的字符串——不管它的内容是什么,像这样发帖:
var data = 'content='+ed;
$.ajax({
type: 'post',
url: 'script.php',
data: data,
success: function(msg) {
alert(msg);
}
});
我在 "data:data" 之前创建数据字符串,因为字符串中还有一些项目。
我的alert(msg) 由echo $_POST['content']; 在script.php 上设置
alert(msg) 告诉我已经(或尚未)发布到数据库的内容。这就是我看到上面提到的问题的地方。即包含(或不包含)<img...>
请提出建议
【问题讨论】:
-
var data = 'content='+ed;- 更好地使用var data = {content: ed}; -
@ThiefMaster - 抱歉,为什么? - 我在 JQ 还是新手,仅此而已
-
它确保您不必关心数据中的特殊字符,例如
&- jQuery 会为您将数组序列化为正确编码的字符串。