发布表单并刷新div

时间:2013-09-09 14:52:51

标签: jquery html post

我将带有.load()的PHP文件加载到名为#content

的div中

我想发帖子但是我怎么能让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?

2 个答案:

答案 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触发了提交事件。”

如果你不使用委托,并且你试图绑定到一个尚未存在的元素,那么它将不起作用。