Multiply复选框发布php ajax返回问题

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>