Using Ajax jQuery function $.post()
, I'm sending jQuery serialized()
form data to a PHP function which successfully receives it in $_POST[]
yet individual $_POST['form_field']
variables are empty.
In my PHP function, print_r($_POST)
successfully displays the form data:
Array ( [action] => send_message [data] => modal_name=olivier&modal_email=olivier%40hotmail.com&modal_message=Hello+world )
Yet $_POST['modal_name']
, $_POST['modal_email']
and $_POST['modal_message']
are empty. Why?
HTML:
<form id='contact'>
<input type='text' name='modal_name' id='modal_name' />
<input type='email' name='modal_email' id='modal_email' />
<textarea name='modal_message' id='modal_message'></textarea>
</form>
JS:
$('#contact').on('submit', function(e) {
e.preventDefault();
if (modal_name && modal_email && modal_message) {
var data = {
action: 'send_message',
data: $(this).serialize()
};
$.post(WPaAjax.ajaxurl, data, function(response) {
$('.modal').append(response);
});
}
});