数据不会从Ajax传输到PHP

时间:2015-04-08 14:38:46

标签: php ajax

我试图传递来自提示的数据,但PHP没有收到数据。

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

PHP文件:

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

2 个答案:

答案 0 :(得分:2)

你确定PHP没有收到数据吗?可能Ajax调用正常工作。问题是您没有处理回显的结果。 请尝试以下方法:

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

答案 1 :(得分:0)

好的,让我补充一下。

<!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看起来像这样

<?php

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

所以,当我点击按钮“点击我”时,它会调用测试功能并给你一个提示,然后输入文字,当你提交时,你会得到结果来自test.php。我试过了,它工作正常。

更新:

不要在success处理程序中执行警报,只需设置如下结果:

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

您的页面看起来像这样。无论你从你的页面得到什么,你的跨度都会有。希望它有意义。

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

</body>