I'm trying to send a form via jquery ajax. I have this:
JS:
$('#form-pm').on('submit',function(e) {
e.preventDefault();
var formData = $('#form-pm').serialize();
var ajaxRequest =
$.ajax({
url: //my valid url,
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
type: 'post',
data: formData
});
ajaxRequest.done(function(data) { console.log(data); });
ajaxRequest.fail(function(jqXHR) { alert('You are fail. ' + jqXHR); });
});
UPDATE: JS looks like this now:
var formData = $('#form-pm').serialize();
var ajaxRequest =
$.ajax({
url: admin_ajax.ajax_url,
type: 'post',
data: formData
});
ajaxRequest.done(function(data) { console.log(data); });
ajaxRequest.fail(function(jqXHR) { alert('You are fail. ' + jqXHR); });
e.preventDefault();
400 Bad Request is gone, but my function send_message is receiving blank parameters. According to error.log, it's send_message('',NULL,NULL)
PHP:
function send_message($projectid, $userid, $message) {
//do stuff
}
<form id="form-pm" method="post" enctype="multipart/form-data" action="">
<textarea name="message" rows=3 id="project-message"></textarea>
<input type="submit" name="send" value="send message">
<input id="userid" type="hidden" name="userid" value="<?php echo $userid; ?>">
<input id="projectid" type="hidden" name="projectid" value="<?php echo $projectid; ?>">
<input id="userid" type="hidden" name="action" value="send_message">
</form>
I keep getting POST 400 Bad Request. I know it's data
that is causing trouble. How does post expect data
to look like?