无法获得正确的返回数据

时间:2014-01-07 13:11:33

标签: php jquery ajax

出了什么问题:

$('#btnSend').click(function()
{     
    var msg = $('#txtar').val();  // textarea
    alert (msg); // works well, for example 'abc'
    $.ajax(
    {
        type: "POST",
        url: "write.php",
        data: {msg: msg},
        success: function(r)
        {
            alert(r); // doesn't work
        }
    });
});

write.php

$a = $_POST['msg'];
echo $a;

而不是abc我在警报中获取整个write.php文件的内容。

5 个答案:

答案 0 :(得分:3)

这很简单......

write.php

 $a = $_POST['msg'];
 echo $a;
 exit;

将退出或结束放在此处,否则代码将不必要地进一步移动。

答案 1 :(得分:2)

write.php是否包含打开和关闭的php标记:

<?php
$a = $_POST['msg'];
echo $a;
?>

答案 2 :(得分:2)

好像您的write.php文件不包含<?php。在开头添加它。结束?>是可选的。

答案 3 :(得分:1)

试试这个:

alert(r.msg);

alert(r->msg);

答案 4 :(得分:1)

  • php5不需要关闭php标签,如果它的文件只有 php

这也是一个小例子。刚刚在带有libapache2-mod-php5的apache2.4服务器上测试了这个。如果PHP代码不起作用,不要担心你的服务器或配置,只要确保你包含一个JS库来使这些AJAX请求工作。

PHP(5)

<?php
if($_POST && isset($_POST['payload'])) {
     echo "hello ".$_POST['payload'];
}

JS

$.ajax({
    type: "POST",
    url: "this.php",
    data: {payload:"world"},
    success: function(response){ alert(response); }
});