I have a form which opens in Colorbox and is submitted via Ajax/JQuery to itself. However, it seems as if the data passed is not including the value of the submit button itself. Whether I use multiple submits or just one, there is no data in $_POST['submitButton'], and it doesn't respond to isset() or empty().
The rest of the form posts just fine though. I can echo $_POST['name'] and $_POST['email'], just not $_POST['submitButton']
Here is (a stripped down version of) my form:
<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> And here is the jquery that processes the form to be submitted via AJAX, rather than an HTTP request.
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; }); }
serializewon't include submit button value because form was not submited by submit button. Only "successful controls" are serialized to the string.