Ajax调用一直返回null

时间:2012-08-26 20:03:38

标签: php javascript jquery ajax

我的js:

$('#select').change(function() {
    var name = $(this).val();
    $.ajax({
        type: "POST",
        url: "data/grab.php",
        data: { type: "hops", name: name },
        dataType: "json",
        success: function(data) {
                    alert(data);
            var aa = data['aa'];
            $('#hops-aa').val(aa);
        }
    });
});

grab.php

<?php

$type = $_POST['type'];
$name = $_POST['name'];

if ($type == 'hops') {
    $result = $name;
}

$result = json_encode($result);
return $result;

我在ajax调用中添加了alert()来仔细检查我从脚本中获取的内容,并且它始终为null。我缺少什么?

3 个答案:

答案 0 :(得分:3)

您需要实际echoprint $result。在PHP中,使用文件范围中的return不会将返回的值发送到输出流。

答案 1 :(得分:2)

您使用echo以PHP格式打印结果,而不是return

echo $result;

答案 2 :(得分:1)

(如前所述) 您需要回显/打印$ result变量。

<?php

$type = $_POST['type'];
$name = $_POST['name'];

if ($type == 'hops') {
    $result = $name;
}

$result = json_encode($result);
echo $result; // return $result;
?>