jQuery通过POST发送HTML数据

我正在使用jQuery使用div的HTML内容对PHP文件进行POST。 HTML内容包含表,输入,较小的div,我想获取主DIV的内容并将其发送到数据库。 我能想到的唯一选择是POST方法,但我不知道是否可以用它发送纯HTML。 是否还有其他选项可以将HTML内容从div发送到PHP文件以插入MySQL?

谢谢。

编辑:我现在能够使用jQuery的POST发送完整的HTML数据。 但是,我在DIV中的HTML字符会转换为特殊字符。 示例:“>”将变为“>” 当发生这种情况时,我的POST数据仅限于第一个特殊字符出现的位置,因为我像这样执行我的ajax POST:

var data = 'id='+ currid +'&html='+ div_html; $.ajax({ type: "POST", url: "file.php", data: data, ....................... ....................... 

使用此代码不正常,因为div_html包含其他“&”字符,因此它将被视为要发送的另一个POST参数。

有任何变通方法吗?

再次感谢。

一旦你用“ .html()之类的东西”拉出“内容,你就会担心它只是一个字符串。 你可以测试一下

   runthis     
x
xyz

警报文本是字符串 。 只要你没有将它传递给解析器就没有任何魔力,它就像任何其他字符串一样。
没有什么阻碍您使用.post()将此字符串发送回服务器。

编辑 :不要将字符串作为参数数据传递给.post(),而是传递一个对象

 var data = { id: currid, html: div_html }; $.post("http://...", data, ...); 

jquery将处理参数的编码。
如果你(无论出于何种原因)想要保留你的字符串,你必须用escape()之类的东西对值进行编码。

 var data = 'id='+ escape(currid) +'&html='+ escape(div_html); 

我不明白你为什么不能通过post发送html内容。

如果你遇到任何问题,你可能会使用某种编码/解码 – 但我不认为你会。

如果要向服务器发送任意数量的数据,POST是唯一可行的方法。 GET也是可能的,但客户端和服务器只允许有限的URL长度(类似于2048个字符)。

 jQuery.post(post_url,{ content: "John" } ) .done(function( data ) { });