Javascript 非常简单的jquery post()(尝试将html发送到另一个页面)
我正在努力使用Javascript 非常简单的jquery post()(尝试将html发送到另一个页面),javascript,jquery,html,http-post,Javascript,Jquery,Html,Http Post,我正在努力使用post()方法 我已经在这里和jquery论坛上读了好几篇文章,仅仅尝试一段简单的代码是很困难的。我的最终目标是将div#exportData及其所有子项传递给test.php 我从以下几点开始: $.post("ajax/test.php", $("body").html()); 在我看来,这应该将当前页面的全部内容返回到test.php(除非test.php需要一个holding div或元素来接收内容)。当前它只返回空白页。 然后,如果需要操作这些参数,我尝试查看post
post()
方法
我已经在这里和jquery论坛上读了好几篇文章,仅仅尝试一段简单的代码是很困难的。我的最终目标是将div#exportData及其所有子项传递给test.php
我从以下几点开始:
$.post("ajax/test.php", $("body").html());
在我看来,这应该将当前页面的全部内容返回到test.php(除非test.php需要一个holding div或元素来接收内容)。当前它只返回空白页。
然后,如果需要操作这些参数,我尝试查看post()
的参数:
$.ajax({
type: 'POST',
url: ajax/test.php,
data: data,
success: success,
dataType: dataType
});
还声明了一个变量:
var data = {
html: #exportData
};
这一点当然失败了。我不知道如何在参数中定义数据,或者这是否是正确的位置
虽然我会想如果:
$.post("ajax/test.php", $("body").html());
我可以用“body”替换我喜欢的任何类、id或选择器
submit按钮是否需要某些参数将其与post功能绑定。目前,这纯粹是:
<input type="submit" id="submit" value="send" name="submit">
对不起,这是个很基本的问题 你可以这样做
var html = $("body").html();
var data = {
html: html
};
$.post("ajax/test.php", data);
因为$.post()的第二个参数是一个对象,其中包含要发送到服务器的数据
要发送数据,您可以执行以下操作:
<input type="submit" id="submit" value="send" name="submit">
接收数据的服务器端
$html = $_POST['html']
期望将对象与post请求一起传递给transfert数据:
jQuery.post(url[,data][,success(data,textStatus,jqXHR)][,dataType])url:包含请求发送到的url的字符串。
数据:随请求一起发送到服务器的映射或字符串。
成功(数据、文本状态、jqXHR):如果请求成功,则执行的回调函数。
数据类型:服务器所需的数据类型。默认值:智能猜测(xml、json、脚本、文本、html)
在帖子中发送html听起来不是个好主意。
input
或select
类型的所有元素在Html中都将为空。您需要使用.serialize
来获取值
$('#submit').submit(function () {
$.ajax({
type: 'POST',
url: 'ajax/test.php',
data: {
html: $('body').html()
}
});
});
您需要显示页面
ajax/test.php
的代码,以便我们提供帮助。首先,我认为您需要对web表单进行进一步的探索,这将有助于您了解submit按钮的工作原理以及它们是如何链接在一起的。在这个阶段,我试图传递到页面的数据中没有表单元素,只有html,我读到了有关字符被更改的信息,我希望避免这些更改。“数据:随请求发送到服务器的映射或字符串。“似乎表明字符串可以正常工作,但发送整个页面的HTML可能不是一个好主意。Send thill body=证明了这个概念的有效性,带有id的Send div将是页面的较小子集。虽然它可能仍然有很多字符,但我确实认为发送整个页面html,甚至只是其中的一部分也是一个坏主意。我不明白为什么警察要这么做。但从技术上讲,这是可能的。我无法实现这一点:(我实际上禁用了preventDefault操作,因为我希望看到test.php页面加载其中发布的内容,现在重新加载当前页面,url附加了:?submit=send。代码现在在线,因此我可以发送url进行测试。
var content = $ ('body').html(),
data = { content: content };
$.post('ajax/test.php', data);
$('#submit').submit(function () {
$.ajax({
type: 'POST',
url: 'ajax/test.php',
data: {
html: $('body').html()
}
});
});