我正在使用jQuery将div的HTML内容发布到PHP文件。HTML内容包含表,输入,较小的div,我想获取主DIV的内容并将其发送到数据库。我能想到的唯一选择是POST方法,但我不知道是否可以发送纯HTML。从div发送HTML内容到要插入MySQL的PHP文件还有其他选择吗?
谢谢。
编辑: 我现在能够使用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()之类的内容“提取”了内容,它只是一个字符串。你可以用
<html> <head> <title>runthis</title> <script type="text/javascript" language="javascript" src="jquery-1.3.2.js"></script> <script type="text/javascript"> $(document).ready( function() { var x = $("#foo").html(); alert( typeof(x) ); }); </script> </head> <body> <div id="foo"><table><tr><td>x</td></tr></table><span>xyz</span></div> </body> </html>
警报文本为 string 。只要您不将其传递给解析器,就不会有任何魔力,它就像其他字符串一样是字符串。 没有什么可以阻止您使用.post()将此字符串发送回服务器的。
编辑 :不要将字符串作为参数 数据 传递给.post(),而是将对象传递给
var data = { id: currid, html: div_html }; $.post("http://...", data, ...);
jQuery将处理参数的编码。 如果您(出于某种原因)想要保留您的字符串,则必须使用escape()之类的值对值进行编码。
var data = 'id='+ escape(currid) +'&html='+ escape(div_html);