多くの人がこの点について「同じページで複数のフォームを処理する」というトピックを作成していることを私は知っています。それにもかかわらず、それらのほとんどを読んだ後、私は解決策を見つけられませんでした。
いくつかの記事をリストしたページがあります。ユーザーはスライダーのおかげで各投稿にマークを付けて送信することができます。記事に関連付けられたマークを送信するために、関数.each()を使用しますが、期待される結果が得られません。送信するフォームに関係なく、送信されるページの最後のフォームです。
HTML:
<form method="post" action="" class="vote-form">
<input type="hidden" id="amount" name="amount" class="hidden" value="5" />
<input type="hidden" id="post_id" name="post_id" value="<?php echo get_the_ID(); ?>" />
<input type="submit" name="post_vote" value="VOTE">
</form>
JS:
$( ".vote-form" ).each(function() {
$( this ).submit(function() {
// get all the inputs into an array.
var $inputs = $('.vote-form :input');
// get an associative array of just the values.
var values = {};
$inputs.each(function() {
values[this.name] = $(this).val();
alert(values[this.name]);
});
// ************ Save vote in AJAX *************
// ...
return false;
});
});
フォームの1つを送信すると、非表示の入力の各値がアラートに表示されます。