have code:
//$(document).ready(function () {
function call() {
var msg = new Array();
$("input[name='uservalues[]']:checked").each(function() {
msg.push($(this).val());
});
console.log(msg); //first log
$.ajax({
type: 'POST',
url: 'res2.php',
dataType: 'html',
data: msg,
success: function(data) {
console.log(data); //second log
$('#results').html(data);
},
error: function(xhr, str) {
alert('Error: ' + xhr.responseCode);
}
});
console.log(msg); //third log
}
//});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form method="POST" id="formx" action="javascript:void(null);" onsubmit="call()">
<input class="uservalues" type="checkbox" name="uservalues[]" value="9001" checked>user1
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9002" checked>user2
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9003">user3
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9011">user11
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9087" checked>user87
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9089">user89
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9096">user96
<br>
<input class="uservalues" type="checkbox" name="uservalues[]" value="9097">
<br>
<input type="submit" class="btn btn-default btn-lg" value="Send">
</form>
<div id="results">output</div>
my res2.php
<?php
print_r ($_POST);
?>
So problem, that in console.log fist and third - i had ["9001", "9002", "9087"]
but in second log and in post return i had
Array ( [undefined] => )
Also when uncomment $(document).ready function with closing tags - i had error -
Uncaught ReferenceError: call is not defined
</div>
I think you must pass the name like this:
$_POST['uservalues'];
Your function must be inside a script.
<script>
//your function
</script>