私は3つのことを行っています:
このフォームで情報を送信しています。
<form method="post" id="myForm" action="includes/functions.php">
<input type="hidden" name="group_id" value="$group_id" />
<input type="hidden" name="submit_join"/>
<button class="request" id="sub" name="submit_join">Join</button>
</form>
この jQuery スクリプトは、PHP スクリプトを実行します。
$("#sub").click(function() {
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(){ $("#sub").html("Applied").fadeIn().addClass("applied").removeClass("request");
});
});
$("#myForm").submit(function() {
return false;
});
これが PHP スクリプトの機能です。(準備文ではありません)
if (isset($_POST['submit_join'])) {
//User ID
$user_id = $_SESSION['user_id'];
$group_id = $_POST['group_id'];
$sql="INSERT INTO group_assoc (user_id, group_id, permission, dateTime) VALUES ('$user_id', '$group_id', 0, now())";
if (!mysqli_query($connection, $sql)) {
die('Error: ' . mysqli_error($connection));
}
}
-誰かがボタンを 1 回クリックすると、問題なく動作します。
- jQueryスクリプトをトリガーします
- jQuery スクリプトが PHP スクリプトをトリガーします。
- PHPはその仕事をします
- jQueryはクラス「リクエスト」を削除し、クラス「適用」を配置します
問題: 同じユーザーが別のボタン (クリックしたばかりのボタンの複製) をクリックすると、ページは jQuery スクリプトを無視し、通常どおりにページを更新します。これは望ましくないプロセスです。
なぜ複数のフォームで、なぜ複数のボタンなのか? Web サイトのすべてのグループに対して PHP while ループを実行しています。すべてのフォームには、上記の jQuery スクリプトを使用してグループに参加し、データベースの値を変更できるボタン (参加) が含まれています。
質問:<button class="request" id="sub" name="submit_join">Join</button>
別のボタン ( ) がクリックされたときに jQuery スクリプトが無視されないように、jQuery スクリプトを再バインドするにはどうすればよいですか?