jQuery的完成POST发送HTML数据(jQuery send HTML data throug

2019-06-24 21:30发布

我使用jQuery做一个POST到一个div的HTML内容的PHP文件。 HTML内容包含表,输入较小的div,我想抓住主要DIV的内容,并将其发送到数据库。 我能想到的唯一的选择是POST方法,但我不知道是否我可以用它发送纯HTML。 是否有从一个div发送HTML内容的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参数。

任何变通办法?

再次感谢。

Answer 1:

至于你担心一旦你的东西,如“拉出”内容的.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>

警报文本为 只要你不把它传递给一个解析器有没有关于它的魔力,它像任何其他字符串的字符串。
没有什么阻碍你使用。员额()这个字符串发送回服务器。

编辑 :不要作为参数传递 .POST(字符串),但一个对象,像

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

jQuery将处理参数的编码。
如果你(无论何种原因)想保持你的字符串,你要的东西,如编码值越狱() 。

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


Answer 2:

我不明白为什么你不应该能够通过一个帖子发送HTML内容。

如果您遇到任何问题,你也许可以使用某种类型的编码/解码的 - 但我没有看到你会的。



Answer 3:

如果你想任意数据量发送到您的服务器,POST是唯一可靠的方法来做到这一点。 GET也将是可能的,但客户端和服务器只允许有限的URL长度(类似2048个字符)。



Answer 4:

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

我用什么ü上面已经回答的技术,它工作正常,但我的问题是我需要生成使用约翰为文本的PDF conent。 我已经能够呼应传递的数据。 但产生以下内容普莱斯检查PDF uisng当越来越空

 ob_start(); include_once(JPATH_SITE .'/components/com_gaevents/pdfgenerator.php'); $content = ob_get_clean(); $test = $_SESSION['content'] ; require_once(JPATH_SITE.'/html2pdf/html2pdf.class.php'); $html2pdf = new HTML2PDF('P', 'A4', 'en', true, 'UTF-8',0 ); $html2pdf->setDefaultFont('Arial'); $html2pdf->WriteHTML($test); 



文章来源: jQuery send HTML data through POST