-2

.load()と呼ばれるdivにPHPファイルをロードします#content

投稿したいのですが#content、ページ全体ではなく div のみを更新する必要があることを jQuery に知らせるにはどうすればよいですか?

Ajax の投稿と jQuery の投稿について Web を検索し、多くのことを試しましたが、何も機能しませんでした..

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>

しかし、私のアドレス バーには、POST ではなく GET メソッドのような疑問符が表示されます。

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

問題は、あなたが言ったように、後でを使用して div#donateFormに動的にロードされるコンテンツであるため、バインドが行われた時点で存在しないように見える送信イベントがバインドしようとしていることです。#contentload()

イベント委任を使用する必要があります。これを試してください:

$("#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 に答える