Colorbox で開き、Ajax/JQuery を介してそれ自体に送信されるフォームがあります。ただし、渡されたデータには送信ボタン自体の値が含まれていないようです。複数の送信を使用するか、1 つだけを使用するかに関係なく、$_POST['submitButton'] にはデータがなく、isset() または empty() に応答しません。
ただし、フォームの残りの部分は問題なく投稿されます。$_POST['name'] と $_POST['email'] をエコーできますが、$_POST['submitButton'] はエコーできません
これが私のフォーム(の簡素化されたバージョン)です:
<form id="sub-process" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="name" type="text" value="">
<input name="email" type="text" value="">
<input name="submitButton" type="submit" value="Submit">
</form>
HTTP リクエストではなく、AJAX 経由で送信されるフォームを処理する jquery を次に示します。
jQuery(function(){
jQuery('.cbox-form').colorbox({maxWidth: '75%', onComplete: function(){
cbox_submit();
}});
});
function cbox_submit()
{
jQuery("#sub-process").submit(function(){
jQuery.post(
jQuery(this).attr('action'),
jQuery(this).serialize(),
function(data){
jQuery().colorbox({html: data, onComplete: function(){
cbox_submit();
}});
}
);
return false;
});
}