我正在尝试从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解释这些符号。
答案 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 }
);
}
希望这有帮助