私はPHPフォームを設定していますが、それは自分自身ではうまくいきますが、今はAJAXに接続しました。誰かがフォームを提出したときに重複した投稿を受け取りました。彼らは一度詳細をデータベースに複数回追加するとフォームを提出しただけです。提出時にAJAXフォームが複写されます
私のテストでは、データを2回送信したように見えますが、他の人からの投稿を見ると、特定の状況で2回以上実行している可能性がありますが、それを再現できませんでした。ここで
は、私が最初に使用したコードです。
$("#email-gather").submit(function(e) {
var url = "https://www.ruroc.com/emailgather.php";
$.ajax({
type: "POST",
url: url,
data: $("#email-gather").serialize(),
complete: function(data) {
$('.email-win input.button').val("submitted").attr('disabled', 'disabled').css({'background-color' : '#b34c4c','text-shadow' : 'none'});
}
});
e.preventDefault();
});
私は解決策を見つけるために周りを見て持っていたと私は同様の問題が.liveではなく.submitの使用すべきであると言って少数の人々を見ました私は、これは、この私のコードを改正:
$("#email-gather").live("submit", function() {
event.preventDefault();
var url = "https://www.ruroc.com/emailgather.php";
$.ajax({
type: "POST",
url: url,
data: $("#email-gather").serialize(),
complete: function(data) {
$('.email-win input.button').val("submitted").attr('disabled', 'disabled').css({'background-color' : '#b34c4c','text-shadow' : 'none'});
}
});
});
私はあなたがこの問題の解決策を持っているかもしれません願っていますので、しかし、これはまた同じ問題になりました。私はあなたがその問題について提供できる助けに感謝します。
一意のインデックスが必要でしょう – e4c5
非同期 '.ajax'呼び出しを実行する前に' e.preventDefault(); 'を呼び出す必要があります。 – RiggsFolly
2番目のフラグメントでは、正しい順序で物事を持っていますが、最初のフラグメントでは '$("#email-gather ")を実行しません。私は思っただろうコンパイルエラーを生成する必要があります___ – RiggsFolly