来自函数的jquery ajax数据

时间:2015-03-03 18:40:04

标签: jquery ajax

我正在尝试从jQuery函数中检索数据。

这是我的功能

function getPageHTML() {
    $("input").each(function(){
        $(this).attr("value", $(this).val());
    });
    return "<html>" + $("html").html() + "</html>";
}

以上我在我的2 <html></html>标记中包含所有值,并且输入中包含所有值。

function send(){
    $.ajax({
        url:"save-script.php",
        type:'POST',
        data: getPageHTML()
    });
}

上面我试图将此数据发送到我的save-script.php文件。这一切都很好,但似乎jQuery正在解释某些字符和符号。 +和&amp;这里。

function getPageHTML() {
    $("input").each(function(){
        $(this).attr("value", $(this).val());
    });
    return "<html>"   $("html").html()   "</html>";
}

我的代码在执行send函数后最终看起来像这样。 我尝试使用dataType: "html"但没有成功。

还尝试了data: encodeURIComponent(getPageHTML())但最终删除了所有的html。

我试图保留所有这些符号,而不是让jQuery解释这些符号。

4 个答案:

答案 0 :(得分:1)

您需要将getPageHtml()的输出保存为变量,如下所示:

var html = getPageHtml();

然后将该新变量作为AJAX调用的数据传递。

var html = getPageHtml();

function send(data){

    $.ajax({
        url:"save-script.php",
        type:'POST',
        data: data
    });
}

send(html);

试试这个并告诉我它是否有效。

答案 1 :(得分:1)

如果您只是想关闭编码,这可能是一个不错的选择:

  

processData (默认:true

     

类型:布尔值

     

默认情况下,作为对象传入数据选项的数据(技术上,不是字符串)将被处理并转换为查询字符串,适合默认内容类型&#34; application / x- WWW窗体-urlencoded&#34 ;. 如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false

http://api.jquery.com/jquery.ajax/

$.ajax({
    url:"save-script.php",
    type:'POST',
    processData: false,
    data: getPageHTML()
});

答案 2 :(得分:0)

首先将getPageHTML存储到变量&amp;然后将该变量作为ajax数据传递。

您的send功能应该是这样的:

function send(){
 var myHTML = getPageHTML();
    $.ajax({
    url:"save-script.php",
    type:'POST',
    data: myHTML
    });
}

请注意getPageHTML应在send功能之前定义。

答案 3 :(得分:0)

好吧好像我找到了解决问题的方法。我无法使用$.ajax来解决问题,而我试图做的事情似乎很简单。将ajax data:发送到.php文件。我对所有这些工作实际上让事情变得容易一些;)

function send(){
    $.post("save-script.php",
   { getPageHTML }
 );
}

希望这有帮助