我将带有.load()
的PHP文件加载到名为#content
我想发帖子但是我怎么能让jQuery知道它只需要刷新#content
div而不是整个页面?
在网上搜索了关于Ajax帖子和jQuery帖子并试了很多东西,但没有任何效果......
JS:
$("#donateForm").submit(function(event) {
event.preventDefault();
$.ajax({
url:'donate.php',
type: 'POST',
data:'any=data&more=data',
success:function(data){
$('#content').html(data);
}
});
});
在我的捐款页面上:
<form id="donateForm">
<p><button id="MyButton">Do it</button></p>
</form>
但是在我的地址栏中,我得到一个问号,就像是GET方法而不是POST?
答案 0 :(得分:2)
谷歌是你的朋友。
反正:
$.ajax({
url:'ths/url/to/your.php',
type: 'post',
data:'any=data&more=data',
success:function(data){
$('#yourDivID').html(data);
}
})
答案 1 :(得分:0)
问题是你的提交事件正在尝试绑定到#donateForm
,这在绑定发生时似乎不存在,因为如你所说,它是稍后动态加载到{{1 }}使用#content
。
你需要使用事件委托,试试这个:
load()
这表示“在$("#content").on("submit", "#donateForm", function(event) {
event.preventDefault();
$.ajax({
url:'donate.php',
type: 'POST',
data:'any=data&more=data',
success:function(data){
$('#content').html(data);
}
});
});
内查找提交,然后检查是否#content
触发了提交事件。”
如果你不使用委托,并且你试图绑定到一个尚未存在的元素,那么它将不起作用。