数据不会从Ajax传输到PHP [关闭]

I'm trying to pass data that comes from a prompt, but the PHP doesn't receive the data.

<script>
function test(){
  var  r=prompt("blaksasda");
  if(r){
    $.ajax({
        type: "POST",
        url: "file.php",
        data: {
                param:r,
            }
  });} };
</script>

PHP file:

<?php
echo "$_POST['param']";
?>

Are you sure PHP doesn't receive the data? Probably Ajax call works correctly. The problem is that you don't handle the echoed result. Try the following:

$.ajax({
  type: "POST",
  url: "file.php",
  data: {param: r}
}).done(function(result) {
  alert(result);
});

Ok, let me add the whole thing.

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script>
        function test(){
            var r=prompt("blaksasda");
            if(r){
                $.ajax({
                    type: "POST",
                    url: "test.php",
                    data: { param: r }
                }).done(function(result){
                    alert(result);
                }).fail(function(result){
                    alert('failed: ' + result); 
                });
            }
        }
    </script>
</head>
<body>
    <button onclick="test()">Click me!</button>

</body>
</html>

test.php looks like this

<?php

if (isset($_POST['param'])) {
    echo $_POST['param'];
} else {
    echo 'Whoops';
}

So when I click on the button 'Click Me', it's going to call the test function and give you a prompt and you type the text in and when you submit, you get the result back from test.php. I tried it and it worked fine.

UPDATE:

Instead of doing an alert in the success handler, just set the result like this:

.done(function(result){
    $('#result').html(result);
});

Your page will look something like this. Whatever you get from your page, your span will have that. Hope it makes sense.

<body>
    <button onclick="test()">Click me!</button>
    <br/>
    Prompt result: <span id="result"></span>

</body>