javascriptphpajax

PHP not receiving AJAX POST from js File


I have been trying to work this out for hours now and cannot find any answer that helps me.

This is the code in my JavaScript file:

function sendMovement(cel) {
  var name = "test";
  $.ajax({
      type: 'POST',
      url: '../game.php',
      data: { 'Name': name },
      success: function(response) {
          console.log("sent");
      }
  });
}

This is the code from my PHP file (it is outside the js file):

if($_SERVER["REQUEST_METHOD"] == "POST") {
  $data = $_POST['Name'];
  console_log($data);
}

When debugging I can see that AJAX is sending a POST and it does print in the console "SENT" but it does not print $data.

Update: the function console_log() exists in my PHP file and it works.


Solution

  • Try getting response in JSON format, for that your js should have dataType:'JSON' as shown below

    JS Code:-

    function sendMovement(cel) {
      var name = "test";
      $.ajax({
          type: 'POST',
          dataType:'JSON',   //added this it to expect data response in JSON format
          url: '../game.php',
          data: { 'Name': name },
          success: function(response) {
              //logging the name from response
              console.log(response.Name);
          }
      });
    }
    

    and in the current server side code you are not echoing or returning anything, so nothing would display in ajax response anyways.

    changes in php server code:-

    if($_SERVER["REQUEST_METHOD"] == "POST") {
      
      $response = array();
      $response['Name'] = $_POST['Name'];
      //sending the response in JSON format
      echo json_encode($response);
    
    }