-2

我将一个 PHP 文件加载.load()到一个名为#content

我想做一个帖子,但我怎样才能让 jQuery 知道它只需要刷新#contentdiv 而不是整个页面?

在网上搜索有关 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?

4

2 回答 2

2

谷歌是你的朋友。

无论如何:

$.ajax({
    url:'ths/url/to/your.php',
    type: 'post',
    data:'any=data&more=data',
    success:function(data){
       $('#yourDivID').html(data);
    }
})
于 2013-09-09T14:57:03.293 回答
0

问题是您的提交事件正在尝试绑定到在进行绑定时#donateForm似乎不存在的对象,因为正如您所说,它是稍后#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,然后检查是否#donateForm触发了提交事件。”

如果您不使用委托并且尝试绑定到(尚)不存在的元素,则它将不起作用。

于 2013-09-09T20:36:45.923 回答